Merge "Confine tee, but leave it permissive for now."
diff --git a/rild.te b/rild.te
index 9aba8a2..d9752f7 100644
--- a/rild.te
+++ b/rild.te
@@ -1,10 +1,47 @@
# rild - radio interface layer daemon
type rild, domain;
+permissive rild;
type rild_exec, exec_type, file_type;
init_daemon_domain(rild)
net_domain(rild)
-unconfined_domain(rild)
+allow rild self:netlink_route_socket { setopt write };
+allow rild kernel:system module_request;
+unix_socket_connect(rild, property, init)
+unix_socket_connect(rild, qemud, qemud)
+allow rild self:capability { setuid net_admin net_raw };
+allow rild alarm_device:chr_file rw_file_perms;
+allow rild cgroup:dir create_dir_perms;
+allow rild radio_device:chr_file rw_file_perms;
+allow rild radio_device:blk_file r_file_perms;
+allow rild qemu_device:chr_file rw_file_perms;
+allow rild mtd_device:dir search;
+allow rild efs_file:dir create_dir_perms;
+allow rild efs_file:file create_file_perms;
+allow rild shell_exec:file rx_file_perms;
+allow rild bluetooth_efs_file:file r_file_perms;
+allow rild bluetooth_efs_file:dir r_dir_perms;
+allow rild radio_data_file:dir rw_dir_perms;
+allow rild radio_data_file:file create_file_perms;
+allow rild sdcard_type:dir r_dir_perms;
+allow rild system_data_file:dir create_dir_perms;
+allow rild system_data_file:file create_file_perms;
+allow rild system_file:file x_file_perms;
+dontaudit rild self:capability sys_admin;
+
+# property service
+allow rild rild_prop:property_service set;
+allow rild radio_prop:property_service set;
+
+# Read/Write to uart driver (for GPS)
+allow rild gps_device:chr_file rw_file_perms;
+
+allow rild tty_device:chr_file rw_file_perms;
+
+# Allow rild to create, bind, read, write to itself through a netlink socket
+allow rild self:netlink_socket { create bind read write };
+
+allow rild self:netlink_kobject_uevent_socket { bind create getopt read setopt };
# Access to wake locks
allow rild sysfs_wake_lock:file rw_file_perms;
diff --git a/wpa_supplicant.te b/wpa_supplicant.te
index 5ef3573..12202fb 100644
--- a/wpa_supplicant.te
+++ b/wpa_supplicant.te
@@ -1,7 +1,21 @@
# wpa - wpa supplicant or equivalent
type wpa, domain;
+permissive wpa;
type wpa_exec, exec_type, file_type;
init_daemon_domain(wpa)
-unconfined_domain(wpa)
+allow wpa kernel:system module_request;
+allow wpa self:capability { setuid net_admin setgid net_raw };
+allow wpa cgroup:dir create_dir_perms;
+allow wpa self:netlink_route_socket *;
+allow wpa self:netlink_socket *;
+allow wpa self:packet_socket *;
+allow wpa self:udp_socket *;
+allow wpa wifi_data_file:dir create_dir_perms;
+allow wpa wifi_data_file:file create_file_perms;
+unix_socket_send(wpa, system_wpa, system_server)
+allow wpa random_device:chr_file r_file_perms;
+
+# Create a socket for receiving info from wpa
type_transition wpa wifi_data_file:sock_file wpa_socket;
+allow wpa wpa_socket:sock_file create_file_perms;