wifi - Add sepolicy for wifi_sniffer
Bug: 151402822
Test: wifi_sniffer is workable
Change-Id: Ie41d2caf676e3c3b24edce9061577b92c3023b05
diff --git a/wifi_sniffer/file.te b/wifi_sniffer/file.te
new file mode 100644
index 0000000..667d334
--- /dev/null
+++ b/wifi_sniffer/file.te
@@ -0,0 +1 @@
+type sysfs_wifi_conmode, sysfs_type, fs_type;
diff --git a/wifi_sniffer/file_contexts b/wifi_sniffer/file_contexts
new file mode 100644
index 0000000..b2fc6e2
--- /dev/null
+++ b/wifi_sniffer/file_contexts
@@ -0,0 +1 @@
+/vendor/bin/wifi_sniffer u:object_r:wifi_sniffer_exec:s0
diff --git a/wifi_sniffer/genfs_contexts b/wifi_sniffer/genfs_contexts
new file mode 100644
index 0000000..753ccbc
--- /dev/null
+++ b/wifi_sniffer/genfs_contexts
@@ -0,0 +1 @@
+genfscon sysfs /module/wlan/parameters/con_mode u:object_r:sysfs_wifi_conmode:s0
diff --git a/wifi_sniffer/property.te b/wifi_sniffer/property.te
new file mode 100644
index 0000000..df29700
--- /dev/null
+++ b/wifi_sniffer/property.te
@@ -0,0 +1 @@
+type vendor_wifi_sniffer_prop, property_type;
diff --git a/wifi_sniffer/property_contexts b/wifi_sniffer/property_contexts
new file mode 100644
index 0000000..19f7e76
--- /dev/null
+++ b/wifi_sniffer/property_contexts
@@ -0,0 +1,3 @@
+persist.vendor.wifi.sniffer.freq u:object_r:vendor_wifi_sniffer_prop:s0
+persist.vendor.wifi.sniffer.bandwidth u:object_r:vendor_wifi_sniffer_prop:s0
+vendor.wifi.sniffer.start u:object_r:vendor_wifi_sniffer_prop:s0
diff --git a/wifi_sniffer/wifi_sniffer.te b/wifi_sniffer/wifi_sniffer.te
new file mode 100644
index 0000000..b87a51f
--- /dev/null
+++ b/wifi_sniffer/wifi_sniffer.te
@@ -0,0 +1,20 @@
+type wifi_sniffer, domain;
+type wifi_sniffer_exec, exec_type, vendor_file_type, file_type;
+
+userdebug_or_eng(`
+ # make transition from init to its domain
+ init_daemon_domain(wifi_sniffer)
+ net_domain(wifi_sniffer)
+
+# configurate con mode
+ allow wifi_sniffer self:capability net_admin;
+ allow wifi_sniffer sysfs_wifi_conmode:file rw_file_perms;
+
+# interface up
+ allowxperm wifi_sniffer self:udp_socket ioctl SIOCSIFFLAGS;
+ allow wifi_sniffer self:netlink_generic_socket create_socket_perms_no_ioctl;
+
+ get_prop(wifi_sniffer, vendor_wifi_sniffer_prop)
+
+ dontaudit wifi_sniffer debugfs_wlan:dir search;
+')