From 98a67963fba19d795339f7ab350414c999dd8c3b Mon Sep 17 00:00:00 2001 From: Ecco Park Date: Wed, 13 Sep 2017 19:07:28 -0700 Subject: [PATCH] selinux: add the BT logging permission for Pixel logger Denial message: 09-13 18:55:11.249 7554 7577 W libc : Unable to set property "persist.service.bdroid.snooplog" to "true": error code: 0x18 09-13 18:55:11.250 7554 7577 E AndroidRuntime: FATAL EXCEPTION: LoggingService 09-13 18:55:11.250 7554 7577 E AndroidRuntime: Process: com.android.pixellogger, PID: 7554 09-13 18:55:11.250 7554 7577 E AndroidRuntime: java.lang.RuntimeException: failed to set system property 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.SystemProperties.native_set(Native Method) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.SystemProperties.set(SystemProperties.java:171) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at com.android.pixellogger.data.logger.vendor.qct.ModemLogger$1.onStart(ModemLogger.java:79) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at com.android.pixellogger.data.logger.vendor.qct.ModemLogger.lambda$startLogging$0$ModemLogger(ModemLogger.java:186) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at com.android.pixellogger.data.logger.vendor.qct.ModemLogger$$Lambda$0.accept(Unknown Source:6) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at java.util.HashMap.forEach(HashMap.java:1292) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at com.android.pixellogger.data.logger.vendor.qct.ModemLogger.startLogging(ModemLogger.java:183) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at com.android.pixellogger.service.logging.LoggingService$StartLoggingRunnable.run(LoggingService.java:458) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:790) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 09-13 18:55:11.250 7554 7577 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:65) 09-13 18:55:11.251 1147 2530 W ActivityManager: Force finishing activity com.android.pixellogger/.ui.main.MainActivity 09-13 18:55:11.257 1147 1206 I ActivityManager: Showing crash dialog for package com.android.pixellogger u0 09-13 21:38:45.198 2084 2084 W wcnss_filter: type=1400 audit(0.0:1174): avc: denied { read } for name="timestamp_switch" dev="sysfs" ino=27539 scontext=u:r:wcnss_filter:s0 tcontext=u:object_r:sysfs_timestamp_switch:s0 tclass=file permissive=0 09-13 21:30:50.451 2031 2031 W wcnss_filter: type=1400 audit(0.0:1390): avc: denied { search } for name="diagchar" dev="sysfs" ino=27213 scontext=u:r:wcnss_filter:s0 tcontext=u:object_r:sysfs_diag:s0 tclass=dir permissive=0 Change-Id: Ia05996c1b6e0969ef6df6ea142271f76445b90e1 Signed-off-by: Ecco Park --- init.hardware.diag.rc.userdebug | 8 ++++++++ sepolicy/vendor/logger_app.te | 1 + sepolicy/vendor/property.te | 1 + sepolicy/vendor/property_contexts | 1 + sepolicy/vendor/wcnss_filter.te | 2 ++ 5 files changed, 13 insertions(+) diff --git a/init.hardware.diag.rc.userdebug b/init.hardware.diag.rc.userdebug index 16d7e834..e2e5c81b 100644 --- a/init.hardware.diag.rc.userdebug +++ b/init.hardware.diag.rc.userdebug @@ -384,3 +384,11 @@ service cnss_diag_txt /vendor/bin/cnss_diag -s -f -m /data/vendor/wifi/cnss_diag on property:debug.htc.ramdump.crash=true write /proc/sysrq-trigger "c" + +on property:sys.logger.bluetooth=true + setprop persist.service.bdroid.snooplog true + setprop persist.service.bdroid.fwsnoop true + +on property:sys.logger.bluetooth=false + setprop persist.service.bdroid.snooplog false + setprop persist.service.bdroid.fwsnoop false diff --git a/sepolicy/vendor/logger_app.te b/sepolicy/vendor/logger_app.te index 941da8b7..46874dae 100644 --- a/sepolicy/vendor/logger_app.te +++ b/sepolicy/vendor/logger_app.te @@ -18,4 +18,5 @@ userdebug_or_eng(` set_prop(logger_app, cnss_diag_prop) set_prop(logger_app, modem_diag_prop) + set_prop(logger_app, bluetooth_log_prop) ') diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te index b8e8e53f..9f38fab0 100644 --- a/sepolicy/vendor/property.te +++ b/sepolicy/vendor/property.te @@ -14,3 +14,4 @@ type modem_diag_prop, property_type; type tel_mon_prop, property_type; type sys_time_prop, property_type; type atfwd_start_prop, property_type; +type bluetooth_log_prop, property_type; diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts index b5d5728d..9094079c 100644 --- a/sepolicy/vendor/property_contexts +++ b/sepolicy/vendor/property_contexts @@ -24,3 +24,4 @@ sys.modem.diag. u:object_r:modem_diag_prop:s0 persist.radio.enable_tel_mon u:object_r:tel_mon_prop:s0 sys.time.set u:object_r:sys_time_prop:s0 persist.radio.atfwd.start u:object_r:atfwd_start_prop:s0 +sys.logger.bluetooth u:object_r:bluetooth_log_prop:s0 diff --git a/sepolicy/vendor/wcnss_filter.te b/sepolicy/vendor/wcnss_filter.te index c7c72c77..80d7944e 100644 --- a/sepolicy/vendor/wcnss_filter.te +++ b/sepolicy/vendor/wcnss_filter.te @@ -12,7 +12,9 @@ userdebug_or_eng(` allow wcnss_filter diag_device:chr_file rw_file_perms; allow wcnss_filter ramdump_vendor_data_file:dir create_dir_perms; allow wcnss_filter ramdump_vendor_data_file:file create_file_perms; + allow wcnss_filter sysfs_timestamp_switch:file r_file_perms; r_dir_file(wcnss_filter, debugfs_ipc) + r_dir_file(wcnss_filter, sysfs_diag) ') #allow wakelock