sync codebase

Bug: 162370942
Test: build pass

Change-Id: I73af3d6fa79a2dbf70f855274383cbf3d2af1745
Merged-In: I68126a1e1ae6193c85f6e0d9baf92a83023f436f
diff --git a/wifi_logger/README.md b/wifi_logger/README.md
new file mode 100644
index 0000000..f7fc7c0
--- /dev/null
+++ b/wifi_logger/README.md
@@ -0,0 +1,6 @@
+### wifi logger SELinux rules
+
+This directory contains all the SELinux rules for communication with the
+wlan logger and HAL, and forward the configuration parameter from the file.
+
+The implementation is at ['vendor/google/apps/PixelLogger'] directory
diff --git a/wifi_logger/file.te b/wifi_logger/file.te
new file mode 100644
index 0000000..19e7fda
--- /dev/null
+++ b/wifi_logger/file.te
@@ -0,0 +1 @@
+type wifi_logging_data_file, file_type, data_file_type, mlstrustedobject;
diff --git a/wifi_logger/file_contexts b/wifi_logger/file_contexts
new file mode 100644
index 0000000..c4f7b21
--- /dev/null
+++ b/wifi_logger/file_contexts
@@ -0,0 +1,2 @@
+/vendor/bin/wifi_logger                             u:object_r:wifi_logger_exec:s0
+/data/vendor/wifi/wlan_logs(/.*)?                   u:object_r:wifi_logging_data_file:s0
diff --git a/wifi_logger/hal_wifi_ext.te b/wifi_logger/hal_wifi_ext.te
new file mode 100644
index 0000000..6d28cfd
--- /dev/null
+++ b/wifi_logger/hal_wifi_ext.te
@@ -0,0 +1,4 @@
+userdebug_or_eng(`
+  allow hal_wifi_ext wifi_logging_data_file:dir rw_dir_perms;
+  allow hal_wifi_ext wifi_logging_data_file:file create_file_perms;
+')
diff --git a/wifi_logger/logger_app.te b/wifi_logger/logger_app.te
new file mode 100644
index 0000000..117a6fe
--- /dev/null
+++ b/wifi_logger/logger_app.te
@@ -0,0 +1,5 @@
+userdebug_or_eng(`
+  allow logger_app wifi_logging_data_file:dir create_dir_perms;
+  allow logger_app wifi_logging_data_file:file create_file_perms;
+  set_prop(logger_app, vendor_wlan_logging_prop)
+')
diff --git a/wifi_logger/property.te b/wifi_logger/property.te
new file mode 100644
index 0000000..36b7747
--- /dev/null
+++ b/wifi_logger/property.te
@@ -0,0 +1,3 @@
+# vendor logging property
+vendor_internal_prop(vendor_wlan_logging_prop)
+
diff --git a/wifi_logger/property_contexts b/wifi_logger/property_contexts
new file mode 100644
index 0000000..161fcb7
--- /dev/null
+++ b/wifi_logger/property_contexts
@@ -0,0 +1 @@
+persist.vendor.wifi.logger.start        u:object_r:vendor_wlan_logging_prop:s0
diff --git a/wifi_logger/wifi_logger.te b/wifi_logger/wifi_logger.te
new file mode 100644
index 0000000..7a15732
--- /dev/null
+++ b/wifi_logger/wifi_logger.te
@@ -0,0 +1,22 @@
+type wifi_logger, domain;
+type wifi_logger_exec, exec_type, vendor_file_type, file_type;
+
+userdebug_or_eng(`
+  # make transition from init to its domain
+  init_daemon_domain(wifi_logger)
+  net_domain(wifi_logger)
+
+  get_prop(wifi_logger, hwservicemanager_prop)
+  get_prop(wifi_logger, wifi_hal_prop)
+  get_prop(wifi_logger, vendor_wlan_logging_prop)
+  binder_call(wifi_logger, hwservicemanager)
+  binder_call(wifi_logger, hal_wifi_ext)
+
+  allow wifi_logger hal_wifi_ext_hwservice:hwservice_manager find;
+  allow wifi_logger wifi_logging_data_file:dir create_dir_perms;
+  allow wifi_logger wifi_logging_data_file:file create_file_perms;
+  allow wifi_logger wpa_data_file:dir r_dir_perms;
+  allow wifi_logger wpa_data_file:sock_file getattr;
+  allow wifi_logger hostapd_data_file:dir r_dir_perms;
+  allow wifi_logger hostapd_data_file:sock_file getattr;
+')