From e651f6f4687eff068e73d84f67121ffbc3486f07 Mon Sep 17 00:00:00 2001
From: mukesh agrawal <quiche@google.com>
Date: Fri, 15 Apr 2016 11:10:39 -0700
Subject: [PATCH] allow system server to set log.tag.WifiHAL

On eng and userdebug builds (only), allow system server
to change the value of log.tag.WifiHAL. WifiStateMachine
will set this property to 'D' by default. If/when a user
enables "Developer options -> Enable Wi-Fi Verbose Logging",
WifiStateMachine change log.tag.WifiHAL to 'V'.

BUG=27857554
TEST=manual (see below)

Test detail
1. on user build:
   $ adb shell setprop log.tag.WifiHAL V
   $ adb shell getprop log.tag.WifiHAL
   <blank line>
   $ adb bugreport | grep log.tag.WifiHAL
   <11>[  141.918517] init: avc:  denied  { set } for property=log.tag.WifiHAL pid=4583 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:wifi_log_prop:s0 tclass=property_service permissive=0
   <11>[  141.918566] init: sys_prop: permission denied uid:2000  name:log.tag.WifiHAL
2. on userdebug build:
   $ adb shell getprop log.tag.WifiHAL
   $ <blank line>
   $ adb shell setprop log.tag.WifiHAL V
   $ adb shell getprop log.tag.WifiHAL
   V
3. on userdebug build with modified WifiStateMachine:
   $ adb shell getprop log.tag.WifiHAL
   D

Change-Id: I9cdd52a2b47a3dd1065262ea8c329130b7b044db
---
 property.te       | 1 +
 property_contexts | 1 +
 shell.te          | 1 +
 system_server.te  | 1 +
 4 files changed, 4 insertions(+)

diff --git a/property.te b/property.te
index a7370aec6..d2a238bc1 100644
--- a/property.te
+++ b/property.te
@@ -12,6 +12,7 @@ type net_radio_prop, property_type, core_property_type;
 type system_radio_prop, property_type, core_property_type;
 type system_prop, property_type, core_property_type;
 type vold_prop, property_type, core_property_type;
+type wifi_log_prop, property_type, log_property_type;
 type ctl_bootanim_prop, property_type;
 type ctl_default_prop, property_type;
 type ctl_dumpstate_prop, property_type;
diff --git a/property_contexts b/property_contexts
index e63416554..70a80803b 100644
--- a/property_contexts
+++ b/property_contexts
@@ -33,6 +33,7 @@ debug.                  u:object_r:debug_prop:s0
 debug.db.               u:object_r:debuggerd_prop:s0
 dumpstate.              u:object_r:dumpstate_prop:s0
 log.                    u:object_r:log_prop:s0
+log.tag.WifiHAL         u:object_r:wifi_log_prop:s0
 service.adb.root        u:object_r:shell_prop:s0
 service.adb.tcp.port    u:object_r:shell_prop:s0
 
diff --git a/shell.te b/shell.te
index ad610b42c..d8c6dd49b 100644
--- a/shell.te
+++ b/shell.te
@@ -64,6 +64,7 @@ set_prop(shell, dumpstate_prop)
 set_prop(shell, debug_prop)
 set_prop(shell, powerctl_prop)
 userdebug_or_eng(`set_prop(shell, log_prop)')
+userdebug_or_eng(`set_prop(shell, wifi_log_prop)')
 
 # systrace support - allow atrace to run
 allow shell debugfs_tracing:dir r_dir_perms;
diff --git a/system_server.te b/system_server.te
index 1d2677eaa..3c45981dc 100644
--- a/system_server.te
+++ b/system_server.te
@@ -319,6 +319,7 @@ set_prop(system_server, debug_prop)
 set_prop(system_server, powerctl_prop)
 set_prop(system_server, fingerprint_prop)
 set_prop(system_server, device_logging_prop)
+userdebug_or_eng(`set_prop(system_server, wifi_log_prop)')
 
 # ctl interface
 set_prop(system_server, ctl_default_prop)
-- 
GitLab