From b9e4f7a759bf656dd452f146d3545cccd7efe75a Mon Sep 17 00:00:00 2001 From: Gary Jian Date: Tue, 27 Apr 2021 13:04:29 +0800 Subject: [PATCH 1/2] Add permission to access audiometricext hal for grilservice_app Bug: 182526894 Test: Manual Change-Id: I3ca85be7e5ab244e2dea2c6f7768f59c07b44525 --- whitechapel/vendor/google/grilservice_app.te | 2 ++ 1 file changed, 2 insertions(+) diff --git a/whitechapel/vendor/google/grilservice_app.te b/whitechapel/vendor/google/grilservice_app.te index 9b4eb3d3..50ff22a5 100644 --- a/whitechapel/vendor/google/grilservice_app.te +++ b/whitechapel/vendor/google/grilservice_app.te @@ -5,6 +5,8 @@ allow grilservice_app app_api_service:service_manager find; allow grilservice_app hal_bluetooth_coexistence_hwservice:hwservice_manager find; allow grilservice_app hal_radioext_hwservice:hwservice_manager find; allow grilservice_app hal_wifi_ext_hwservice:hwservice_manager find; +allow grilservice_app hal_audiometricext_hwservice:hwservice_manager find; binder_call(grilservice_app, hal_bluetooth_btlinux) binder_call(grilservice_app, hal_radioext_default) binder_call(grilservice_app, hal_wifi_ext) +binder_call(grilservice_app, hal_audiometricext_default) From 9de2688cd4395bd98eb47dacc093814c8cd3d954 Mon Sep 17 00:00:00 2001 From: Roger Fang Date: Thu, 22 Apr 2021 21:54:27 +0800 Subject: [PATCH 2/2] sepolicy: gs101: add IAudioMetricExt settings E init : Could not start service 'audiometricext' as part of class 'hal': File /vendor/bin/hw/vendor.google.audiometricext@1.0-service-vendor(labeled "u:object_r:vendor_file:s0") vendor.google.a: type=1400 audit(0.0:3): avc: denied { read } for name="u:object_r:hwservicemanager_prop:s0" dev="tmpfs" ino=188 scontext=u:r:hal_audiometricext_default:s0 tcontext=u:object_r:hwservicemanager_prop:s0 tclass=file permissive=1 E SELinux : avc: denied { find } for interface=vendor.google.audiometricext::IAudioMetricExt sid=u:r:hal_audiometricext_default:s0 pid=819 scontext=u:r:hal_audiometricext_default:s0 tcontext=u:object_r:default_android_hwservice:s0 tclass=hwservice_manager permissive=1 E SELinux : avc: denied { add } for interface=android.hidl.base::IBase sid=u:r:hal_audiometricext_default:s0 pid=795 scontext=u:r:hal_audiometricext_default:s0 tcontext=u:object_r:hidl_base_hwservice:s0 tclass=hwservice_manager permissive=1 Bug: 180627405 Test: manually test passed Signed-off-by: Roger Fang Change-Id: I91d76eb0ad5850e75ad865304d83f3025b981915 --- whitechapel/vendor/google/file_contexts | 4 ++++ whitechapel/vendor/google/genfs_contexts | 3 ++- .../vendor/google/hal_audiometricext_default.te | 12 ++++++++++++ whitechapel/vendor/google/hwservice.te | 4 ++++ whitechapel/vendor/google/hwservice_contexts | 4 ++++ 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 whitechapel/vendor/google/hal_audiometricext_default.te diff --git a/whitechapel/vendor/google/file_contexts b/whitechapel/vendor/google/file_contexts index 2be72002..a722d053 100644 --- a/whitechapel/vendor/google/file_contexts +++ b/whitechapel/vendor/google/file_contexts @@ -320,6 +320,10 @@ /dev/acd-audio_dcdoff_ref u:object_r:aoc_device:s0 /dev/amcs u:object_r:amcs_device:s0 +# AudioMetric +/(vendor|system/vendor)/bin/hw/vendor\.google\.audiometricext@1\.0-service-vendor u:object_r:hal_audiometricext_default_exec:s0 + + # Trusty /vendor/bin/securedpud.slider u:object_r:securedpud_slider_exec:s0 /vendor/bin/storageproxyd u:object_r:tee_exec:s0 diff --git a/whitechapel/vendor/google/genfs_contexts b/whitechapel/vendor/google/genfs_contexts index 84388ff0..b9ad98e7 100644 --- a/whitechapel/vendor/google/genfs_contexts +++ b/whitechapel/vendor/google/genfs_contexts @@ -357,4 +357,5 @@ genfscon sysfs /devices/platform/audiometrics/speaker_impedance u:object_ genfscon sysfs /devices/platform/audiometrics/speaker_excursion u:object_r:sysfs_pixelstats:s0 genfscon sysfs /devices/platform/audiometrics/speaker_heartbeat u:object_r:sysfs_pixelstats:s0 genfscon sysfs /devices/platform/audiometrics/speaker_temp u:object_r:sysfs_pixelstats:s0 - +genfscon sysfs /devices/platform/audiometrics/mic_broken_degrade u:object_r:sysfs_pixelstats:s0 +genfscon sysfs /devices/platform/audiometrics/codec_crashed_counter u:object_r:sysfs_pixelstats:s0 diff --git a/whitechapel/vendor/google/hal_audiometricext_default.te b/whitechapel/vendor/google/hal_audiometricext_default.te new file mode 100644 index 00000000..5358eac4 --- /dev/null +++ b/whitechapel/vendor/google/hal_audiometricext_default.te @@ -0,0 +1,12 @@ +type hal_audiometricext_default, domain; +type hal_audiometricext_default_exec, vendor_file_type, exec_type, file_type; +init_daemon_domain(hal_audiometricext_default) + +allow hal_audiometricext_default amcs_device:chr_file rw_file_perms; +allow hal_audiometricext_default sysfs_pixelstats:file rw_file_perms; + +get_prop(hal_audiometricext_default, vendor_audio_prop); +get_prop(hal_audiometricext_default, hwservicemanager_prop); + +hwbinder_use(hal_audiometricext_default); +add_hwservice(hal_audiometricext_default, hal_audiometricext_hwservice); diff --git a/whitechapel/vendor/google/hwservice.te b/whitechapel/vendor/google/hwservice.te index fc52990a..7ac98578 100644 --- a/whitechapel/vendor/google/hwservice.te +++ b/whitechapel/vendor/google/hwservice.te @@ -21,3 +21,7 @@ type hal_bluetooth_coexistence_hwservice, hwservice_manager_type, vendor_hwservi # Fingerprint type hal_fingerprint_ext_hwservice, hwservice_manager_type; + +# AudioMetric +type hal_audiometricext_hwservice, hwservice_manager_type; + diff --git a/whitechapel/vendor/google/hwservice_contexts b/whitechapel/vendor/google/hwservice_contexts index dfe9cfb5..c00e9572 100644 --- a/whitechapel/vendor/google/hwservice_contexts +++ b/whitechapel/vendor/google/hwservice_contexts @@ -29,3 +29,7 @@ hardware.google.bluetooth.sar::IBluetoothSar u:object_r # Fingerprint vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_ext_hwservice:s0 + +#Audio +vendor.google.audiometricext::IAudioMetricExt u:object_r:hal_audiometricext_hwservice:s0 +