summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Qiu <zqiu@google.com>2015-10-26 17:16:19 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-10-26 17:16:19 +0000
commit23ed021aa477d8b391b0a4681a443eb1f6aec024 (patch)
tree6997411e36cef5dfea32b430e931898e002cbe58
parentf99492f8737ae991759928760b2391653f34825d (diff)
parenta6221e555b9413c7a1f2234e66941b88e169cb48 (diff)
downloadbrillo-23ed021aa477d8b391b0a4681a443eb1f6aec024.tar.gz
Merge "brillo: initialize WiFi driver during startup" into mnc-brillo-dev
-rw-r--r--brillo_base.mk1
-rw-r--r--sepolicy/file_contexts2
-rw-r--r--sepolicy/shill.te8
-rw-r--r--sepolicy/wifi_init.te17
-rw-r--r--wifi_driver_hal/Android.mk1
-rw-r--r--wifi_driver_hal/wifi_init.rc5
6 files changed, 29 insertions, 5 deletions
diff --git a/brillo_base.mk b/brillo_base.mk
index 7b6d27c..683600e 100644
--- a/brillo_base.mk
+++ b/brillo_base.mk
@@ -144,6 +144,7 @@ PRODUCT_PACKAGES += \
dnsmasq \
hostapd \
shill \
+ wifi_init \
wpa_supplicant \
# Check for targets that do not support WiFi.
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index cdffde6..ee76017 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -44,3 +44,5 @@
/system/bin/bluetoothtbd u:object_r:bluetoothtbd_exec:s0
/system/etc/init.firewall-setup.sh u:object_r:brillo_setup_exec:s0
+
+/system/bin/wifi_init u:object_r:wifi_init_exec:s0
diff --git a/sepolicy/shill.te b/sepolicy/shill.te
index 802da28..4109a4f 100644
--- a/sepolicy/shill.te
+++ b/sepolicy/shill.te
@@ -2,8 +2,6 @@
type shill, domain;
type shill_exec, exec_type, file_type;
type shill_data_file, file_type, data_file_type;
-type shill_device, dev_type;
-type shill_sysfs_entry, fs_type, sysfs_type;
init_brillo_domain(shill)
net_domain(shill)
@@ -22,7 +20,7 @@ allow shill proc_net:file w_file_perms;
allow shill metrics_data_file:dir rw_dir_perms;
allow shill metrics_data_file:file create_file_perms;
allow shill sysfs:file w_file_perms;
-allow shill shill_sysfs_entry:file rw_file_perms;
+allow shill wifi_sysfs_entry:file rw_file_perms;
allow shill self:capability { setuid fsetid kill net_admin net_bind_service net_raw setgid sys_module dac_override fowner };
allow shill self:capability2 block_suspend;
@@ -34,8 +32,8 @@ allow shill dhcp_data_file:dir create_dir_perms;
allow shill dhcp_data_file:file create_file_perms;
# Permissions for WiFi driver initialization.
-allow shill shill_device:chr_file rw_file_perms;
-dontaudit shill shill_device:chr_file { getattr ioctl };
+allow shill wifi_device:chr_file rw_file_perms;
+dontaudit shill wifi_device:chr_file { getattr ioctl };
# Permissions for dnsmasq.
allow shill dnsmasq_exec:file rx_file_perms;
diff --git a/sepolicy/wifi_init.te b/sepolicy/wifi_init.te
new file mode 100644
index 0000000..80c1a25
--- /dev/null
+++ b/sepolicy/wifi_init.te
@@ -0,0 +1,17 @@
+# wifi_init.
+type wifi_init, domain;
+type wifi_init_exec, exec_type, file_type;
+type wifi_device, dev_type;
+type wifi_sysfs_entry, fs_type, sysfs_type;
+
+init_brillo_domain(wifi_init)
+
+allow wifi_init self:capability { net_admin net_raw };
+allow wifi_init self:udp_socket create_socket_perms;
+
+# Permissions for WiFi driver initialization.
+allow wifi_init sysfs:file w_file_perms;
+allow wifi_init wifi_device:chr_file rw_file_perms;
+allow wifi_init wifi_sysfs_entry:file rw_file_perms;
+dontaudit wifi_init wifi_device:chr_file { getattr ioctl };
+
diff --git a/wifi_driver_hal/Android.mk b/wifi_driver_hal/Android.mk
index 550fa3a..eb0015f 100644
--- a/wifi_driver_hal/Android.mk
+++ b/wifi_driver_hal/Android.mk
@@ -17,6 +17,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := wifi_init
+LOCAL_INIT_RC := wifi_init.rc
LOCAL_CPPFLAGS := -std=c++11 -Wall -Werror
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES := libcutils libhardware
diff --git a/wifi_driver_hal/wifi_init.rc b/wifi_driver_hal/wifi_init.rc
new file mode 100644
index 0000000..4ea3ff1
--- /dev/null
+++ b/wifi_driver_hal/wifi_init.rc
@@ -0,0 +1,5 @@
+service wifi_init /system/bin/wifi_init client
+ class core
+ user root
+ group root
+ oneshot