move aoc settings to gs-common
Bug: 248426917 Test: boot with aoc launched Change-Id: I7f3e65f9b27510bff657ca46c9688932a0352437
This commit is contained in:
parent
4b68f5fe95
commit
8146116936
25
aoc/aoc.mk
25
aoc/aoc.mk
@ -1,3 +1,26 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/aoc/sepolicy
|
||||
|
||||
PRODUCT_PACKAGES += dump_aoc
|
||||
PRODUCT_PACKAGES += dump_aoc \
|
||||
aocd
|
||||
|
||||
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||
# IAudioMetricExt HIDL
|
||||
PRODUCT_PACKAGES += \
|
||||
vendor.google.audiometricext@1.0-service-vendor
|
||||
endif
|
||||
|
||||
# If AoC Daemon is not present on this build, load firmware at boot via rc
|
||||
ifeq ($(wildcard vendor/google/whitechapel/aoc/aocd),)
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs-common/aoc/conf/init.aoc.nodaemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.aoc.rc
|
||||
else
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs-common/aoc/conf/init.aoc.daemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.aoc.rc
|
||||
endif
|
||||
|
||||
# AoC debug support
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
aocdump \
|
||||
aocutil \
|
||||
aoc_audio_cfg \
|
||||
vp_util
|
||||
|
1
aoc/conf/init.aoc.daemon.rc
Normal file
1
aoc/conf/init.aoc.daemon.rc
Normal file
@ -0,0 +1 @@
|
||||
# AoC firmware will be loaded by Daemon
|
3
aoc/conf/init.aoc.nodaemon.rc
Normal file
3
aoc/conf/init.aoc.nodaemon.rc
Normal file
@ -0,0 +1,3 @@
|
||||
# Load AoC firmware and boot
|
||||
on property:vendor.all.modules.ready=1
|
||||
write /sys/devices/platform/19000000.aoc/firmware aoc.bin
|
21
aoc/sepolicy/aocd.te
Normal file
21
aoc/sepolicy/aocd.te
Normal file
@ -0,0 +1,21 @@
|
||||
type aocd, domain;
|
||||
type aocd_exec, vendor_file_type, exec_type, file_type;
|
||||
init_daemon_domain(aocd)
|
||||
|
||||
# access persist files
|
||||
allow aocd mnt_vendor_file:dir search;
|
||||
allow aocd persist_file:dir search;
|
||||
r_dir_file(aocd, persist_aoc_file);
|
||||
|
||||
# sysfs operations
|
||||
allow aocd sysfs_aoc:dir search;
|
||||
allow aocd sysfs_aoc_firmware:file w_file_perms;
|
||||
|
||||
# dev operations
|
||||
allow aocd aoc_device:chr_file rw_file_perms;
|
||||
|
||||
# allow inotify to watch for additions/removals from /dev
|
||||
allow aocd device:dir r_dir_perms;
|
||||
|
||||
# set properties
|
||||
set_prop(aocd, vendor_aoc_prop)
|
18
aoc/sepolicy/aocdump.te
Normal file
18
aoc/sepolicy/aocdump.te
Normal file
@ -0,0 +1,18 @@
|
||||
type aocdump, domain;
|
||||
type aocdump_exec, vendor_file_type, exec_type, file_type;
|
||||
init_daemon_domain(aocdump)
|
||||
|
||||
userdebug_or_eng(`
|
||||
# Permit communication with AoC
|
||||
allow aocdump aoc_device:chr_file rw_file_perms;
|
||||
|
||||
allow aocdump radio_vendor_data_file:dir rw_dir_perms;
|
||||
allow aocdump radio_vendor_data_file:file create_file_perms;
|
||||
allow aocdump wifi_logging_data_file:dir create_dir_perms;
|
||||
allow aocdump wifi_logging_data_file:file create_file_perms;
|
||||
set_prop(aocdump, vendor_audio_prop);
|
||||
r_dir_file(aocdump, proc_asound)
|
||||
|
||||
allow aocdump self:unix_stream_socket create_stream_socket_perms;
|
||||
allow aocdump audio_vendor_data_file:sock_file { create unlink };
|
||||
')
|
5
aoc/sepolicy/device.te
Normal file
5
aoc/sepolicy/device.te
Normal file
@ -0,0 +1,5 @@
|
||||
# AOC device
|
||||
type aoc_device, dev_type;
|
||||
|
||||
# AMCS device
|
||||
type amcs_device, dev_type;
|
16
aoc/sepolicy/file.te
Normal file
16
aoc/sepolicy/file.te
Normal file
@ -0,0 +1,16 @@
|
||||
# sysfs
|
||||
type sysfs_aoc_dumpstate, sysfs_type, fs_type;
|
||||
type sysfs_aoc_boottime, sysfs_type, fs_type;
|
||||
type sysfs_aoc_firmware, sysfs_type, fs_type;
|
||||
type sysfs_aoc, sysfs_type, fs_type;
|
||||
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;
|
@ -1 +1,38 @@
|
||||
/vendor/bin/dump/dump_aoc u:object_r:dump_aoc_exec:s0
|
||||
# AoC devices
|
||||
/dev/acd-audio_output_tuning u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_bulk_tx u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_bulk_rx u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_input_tuning u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_input_bulk_tx u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_input_bulk_rx u:object_r:aoc_device:s0
|
||||
/dev/acd-sound_trigger u:object_r:aoc_device:s0
|
||||
/dev/acd-hotword_notification u:object_r:aoc_device:s0
|
||||
/dev/acd-hotword_pcm u:object_r:aoc_device:s0
|
||||
/dev/acd-ambient_pcm u:object_r:aoc_device:s0
|
||||
/dev/acd-model_data u:object_r:aoc_device:s0
|
||||
/dev/acd-debug u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_tap[0-9]* u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_dcdoff_ref u:object_r:aoc_device:s0
|
||||
/dev/acd-com.google.usf u:object_r:aoc_device:s0
|
||||
/dev/acd-com.google.usf.non_wake_up u:object_r:aoc_device:s0
|
||||
/dev/acd-logging u:object_r:aoc_device:s0
|
||||
/dev/aoc u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_ap_offload_rx u:object_r:aoc_device:s0
|
||||
/dev/acd-audio_ap_offload_tx 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
|
||||
/vendor/bin/dump/dump_aoc u:object_r:dump_aoc_exec:s0
|
||||
/vendor/bin/hw/vendor\.google\.audiometricext@1\.0-service-vendor u:object_r:hal_audiometricext_default_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
|
||||
|
12
aoc/sepolicy/genfs_contexts
Normal file
12
aoc/sepolicy/genfs_contexts
Normal file
@ -0,0 +1,12 @@
|
||||
# pixelstat_vendor
|
||||
genfscon sysfs /devices/platform/audiometrics/codec_state u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/hs_codec_state u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/speaker_impedance u:object_r:sysfs_pixelstats:s0
|
||||
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
|
||||
genfscon sysfs /devices/platform/audiometrics/hwinfo_part_number u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/ams_rate_read_once u:object_r:sysfs_pixelstats:s0
|
||||
|
35
aoc/sepolicy/hal_audio_default.te
Normal file
35
aoc/sepolicy/hal_audio_default.te
Normal file
@ -0,0 +1,35 @@
|
||||
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;
|
||||
|
||||
set_prop(hal_audio_default, vendor_audio_prop);
|
||||
|
||||
hal_client_domain(hal_audio_default, hal_health);
|
||||
hal_client_domain(hal_audio_default, hal_thermal);
|
||||
allow hal_audio_default fwk_sensor_hwservice:hwservice_manager find;
|
||||
|
||||
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);
|
12
aoc/sepolicy/hal_audiometricext_default.te
Normal file
12
aoc/sepolicy/hal_audiometricext_default.te
Normal file
@ -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);
|
6
aoc/sepolicy/hwservice.te
Normal file
6
aoc/sepolicy/hwservice.te
Normal file
@ -0,0 +1,6 @@
|
||||
# Audio
|
||||
type hal_audio_ext_hwservice, hwservice_manager_type;
|
||||
|
||||
# AudioMetric
|
||||
type hal_audiometricext_hwservice, hwservice_manager_type;
|
||||
|
4
aoc/sepolicy/hwservice_contexts
Normal file
4
aoc/sepolicy/hwservice_contexts
Normal file
@ -0,0 +1,4 @@
|
||||
# Audio
|
||||
vendor.google.whitechapel.audio.audioext::IAudioExt u:object_r:hal_audio_ext_hwservice:s0
|
||||
vendor.google.audiometricext::IAudioMetricExt u:object_r:hal_audiometricext_hwservice:s0
|
||||
|
4
aoc/sepolicy/property.te
Normal file
4
aoc/sepolicy/property.te
Normal file
@ -0,0 +1,4 @@
|
||||
# AoC
|
||||
vendor_internal_prop(vendor_aoc_prop)
|
||||
# Audio
|
||||
vendor_internal_prop(vendor_audio_prop)
|
13
aoc/sepolicy/property_contexts
Normal file
13
aoc/sepolicy/property_contexts
Normal file
@ -0,0 +1,13 @@
|
||||
# AoC
|
||||
vendor.aoc.firmware.version u:object_r:vendor_aoc_prop:s0
|
||||
|
||||
# for audio
|
||||
vendor.audio_hal.period_multiplier u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.enable u:object_r:vendor_audio_prop:s0
|
||||
persist.vendor.audio. u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.log.ondemand u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.log.config u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.output.dir u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.encode.disable u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.log.cca.updated u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.cca.config u:object_r:vendor_audio_prop:s0
|
Loading…
x
Reference in New Issue
Block a user