From d9c4ed7b59a9d38ed9531702369ebc91b05a4408 Mon Sep 17 00:00:00 2001 From: Adam Shih Date: Tue, 24 Aug 2021 15:00:24 +0800 Subject: [PATCH] modularize hal_audio_default Bug: 197585437 Test: boot with hal_audio_default initialized Change-Id: I90435ffa66d342ee5c96bcb872d2ebefe5b4ef7c --- aoc/device.te | 3 +++ aoc/file.te | 4 ++++ aoc/file_contexts | 5 +++++ aoc/hal_audio_default.te | 30 ++++++++++++++++++++++++++++++ aoc/hwservice.te | 2 ++ aoc/hwservice_contexts | 2 ++ legacy/device.te | 3 --- legacy/file.te | 4 ---- legacy/file_contexts | 5 ----- legacy/hal_audio_default.te | 30 ------------------------------ legacy/hwservice.te | 3 --- legacy/hwservice_contexts | 3 --- 12 files changed, 46 insertions(+), 48 deletions(-) create mode 100644 aoc/hal_audio_default.te create mode 100644 aoc/hwservice.te create mode 100644 aoc/hwservice_contexts diff --git a/aoc/device.te b/aoc/device.te index bf9afb58..fbd2b327 100644 --- a/aoc/device.te +++ b/aoc/device.te @@ -1,2 +1,5 @@ # AOC device type aoc_device, dev_type; + +# AMCS device +type amcs_device, dev_type; diff --git a/aoc/file.te b/aoc/file.te index 5d7031cb..4d392938 100644 --- a/aoc/file.te +++ b/aoc/file.te @@ -6,6 +6,10 @@ type sysfs_aoc_reset, sysfs_type, fs_type; # persist type persist_aoc_file, file_type, vendor_persist_type; +type persist_audio_file, file_type, vendor_persist_type; + +# vendor +type aoc_audio_file, file_type, vendor_file_type; # data type audio_vendor_data_file, file_type, data_file_type; diff --git a/aoc/file_contexts b/aoc/file_contexts index da9ab4cd..edd3ebb1 100644 --- a/aoc/file_contexts +++ b/aoc/file_contexts @@ -16,13 +16,18 @@ /dev/acd-com.google.usf u:object_r:aoc_device:s0 /dev/acd-logging u:object_r:aoc_device:s0 /dev/aoc u:object_r:aoc_device:s0 +/dev/amcs u:object_r:amcs_device:s0 # AoC vendor binaries /vendor/bin/aocd u:object_r:aocd_exec:s0 /vendor/bin/aocdump u:object_r:aocdump_exec:s0 +# AoC audio files +/vendor/etc/aoc(/.*)? u:object_r:aoc_audio_file:s0 + # Aoc persist files /mnt/vendor/persist/aoc(/.*)? u:object_r:persist_aoc_file:s0 +/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0 # Audio data files /data/vendor/audio(/.*)? u:object_r:audio_vendor_data_file:s0 diff --git a/aoc/hal_audio_default.te b/aoc/hal_audio_default.te new file mode 100644 index 00000000..6334b93f --- /dev/null +++ b/aoc/hal_audio_default.te @@ -0,0 +1,30 @@ +vndbinder_use(hal_audio_default) +hwbinder_use(hal_audio_default) + +allow hal_audio_default audio_vendor_data_file:dir rw_dir_perms; +allow hal_audio_default audio_vendor_data_file:file create_file_perms; + +r_dir_file(hal_audio_default, aoc_audio_file); +r_dir_file(hal_audio_default, mnt_vendor_file); +r_dir_file(hal_audio_default, persist_audio_file); + +allow hal_audio_default persist_file:dir search; +allow hal_audio_default aoc_device:file rw_file_perms; +allow hal_audio_default aoc_device:chr_file rw_file_perms; + +allow hal_audio_default hal_audio_ext_hwservice:hwservice_manager { find add }; + +allow hal_audio_default amcs_device:file rw_file_perms; +allow hal_audio_default amcs_device:chr_file rw_file_perms; + +#allow access to DMABUF Heaps for AAudio API +allow hal_audio_default dmabuf_heap_device:chr_file r_file_perms; + +get_prop(hal_audio_default, vendor_audio_prop); + +userdebug_or_eng(` + allow hal_audio_default self:unix_stream_socket create_stream_socket_perms; + allow hal_audio_default audio_vendor_data_file:sock_file { create unlink }; +') + +wakelock_use(hal_audio_default); diff --git a/aoc/hwservice.te b/aoc/hwservice.te new file mode 100644 index 00000000..15aaaf71 --- /dev/null +++ b/aoc/hwservice.te @@ -0,0 +1,2 @@ +# Audio +type hal_audio_ext_hwservice, hwservice_manager_type; diff --git a/aoc/hwservice_contexts b/aoc/hwservice_contexts new file mode 100644 index 00000000..8eadd213 --- /dev/null +++ b/aoc/hwservice_contexts @@ -0,0 +1,2 @@ +# Audio +vendor.google.whitechapel.audio.audioext::IAudioExt u:object_r:hal_audio_ext_hwservice:s0 diff --git a/legacy/device.te b/legacy/device.te index 5a2f4794..a3af95f8 100644 --- a/legacy/device.te +++ b/legacy/device.te @@ -49,6 +49,3 @@ type vscaler_heap_device, dmabuf_heap_device_type, dev_type; # Fingerprint device type fingerprint_device, dev_type; -# AMCS device -type amcs_device, dev_type; - diff --git a/legacy/file.te b/legacy/file.te index 777f6a35..f7f9b42f 100644 --- a/legacy/file.te +++ b/legacy/file.te @@ -83,10 +83,6 @@ type per_boot_file, file_type, data_file_type, core_data_file_type; type proc_touch, proc_type, fs_type, mlstrustedobject; type sysfs_touch, sysfs_type, fs_type; -# Audio -type persist_audio_file, file_type, vendor_persist_type; -type aoc_audio_file, file_type, vendor_file_type; - # RILD type rild_vendor_data_file, file_type, data_file_type; diff --git a/legacy/file_contexts b/legacy/file_contexts index 21994bbd..99f31862 100644 --- a/legacy/file_contexts +++ b/legacy/file_contexts @@ -260,11 +260,6 @@ /dev/logbuffer_btlpm u:object_r:logbuffer_device:s0 /dev/logbuffer_tty16 u:object_r:logbuffer_device:s0 -# Audio -/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0 -/vendor/etc/aoc(/.*)? u:object_r:aoc_audio_file: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 diff --git a/legacy/hal_audio_default.te b/legacy/hal_audio_default.te index 5ee99469..31ed6a9b 100644 --- a/legacy/hal_audio_default.te +++ b/legacy/hal_audio_default.te @@ -1,31 +1 @@ -vndbinder_use(hal_audio_default) -hwbinder_use(hal_audio_default) - -allow hal_audio_default audio_vendor_data_file:dir rw_dir_perms; -allow hal_audio_default audio_vendor_data_file:file create_file_perms; - -r_dir_file(hal_audio_default, aoc_audio_file); -r_dir_file(hal_audio_default, mnt_vendor_file); -r_dir_file(hal_audio_default, persist_audio_file); - -allow hal_audio_default persist_file:dir search; -allow hal_audio_default aoc_device:file rw_file_perms; -allow hal_audio_default aoc_device:chr_file rw_file_perms; - -allow hal_audio_default hal_audio_ext_hwservice:hwservice_manager { find add }; - -allow hal_audio_default amcs_device:file rw_file_perms; -allow hal_audio_default amcs_device:chr_file rw_file_perms; allow hal_audio_default sysfs_pixelstats:file rw_file_perms; - -#allow access to DMABUF Heaps for AAudio API -allow hal_audio_default dmabuf_heap_device:chr_file r_file_perms; - -get_prop(hal_audio_default, vendor_audio_prop); - -userdebug_or_eng(` - allow hal_audio_default self:unix_stream_socket create_stream_socket_perms; - allow hal_audio_default audio_vendor_data_file:sock_file { create unlink }; -') - -wakelock_use(hal_audio_default); diff --git a/legacy/hwservice.te b/legacy/hwservice.te index 5d1d6a31..81372fc2 100644 --- a/legacy/hwservice.te +++ b/legacy/hwservice.te @@ -7,9 +7,6 @@ type hal_exynos_rild_hwservice, hwservice_manager_type; # GRIL service type hal_radioext_hwservice, hwservice_manager_type; -# Audio -type hal_audio_ext_hwservice, hwservice_manager_type; - # WLC type hal_wlc_hwservice, hwservice_manager_type; diff --git a/legacy/hwservice_contexts b/legacy/hwservice_contexts index 4f466bf0..113d6623 100644 --- a/legacy/hwservice_contexts +++ b/legacy/hwservice_contexts @@ -14,9 +14,6 @@ android.hardware.media.c2::IConfigurable u:object_r:hal_c # GRIL HAL vendor.google.radioext::IRadioExt u:object_r:hal_radioext_hwservice:s0 -#Audio -vendor.google.whitechapel.audio.audioext::IAudioExt u:object_r:hal_audio_ext_hwservice:s0 - # Wireless charger hal vendor.google.wireless_charger::IWirelessCharger u:object_r:hal_wlc_hwservice:s0