Merge "audio: add audio hal aidl service" into udc-dev

This commit is contained in:
Jasmine Cha 2023-03-10 02:06:05 +00:00 committed by Android (Google) Code Review
commit dffac4331d
36 changed files with 392 additions and 36 deletions

View File

@ -1,5 +1,3 @@
# AOC device
type aoc_device, dev_type;
# AMCS device
type amcs_device, dev_type;

View File

@ -7,10 +7,6 @@ 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;

View File

@ -22,20 +22,15 @@
/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

View File

@ -1,4 +1,2 @@
# AoC
vendor_internal_prop(vendor_aoc_prop)
# Audio
vendor_internal_prop(vendor_audio_prop)

View File

@ -1,13 +1,2 @@
# 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

11
audio/aidl.mk Normal file
View File

@ -0,0 +1,11 @@
DEVICE_MANIFEST_FILE += device/google/gs-common/audio/aidl/manifest.xml
# Audio HALs
PRODUCT_PACKAGES += \
android.hardware.audio.service-aidl.aoc
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/aidl
include device/google/gs-common/audio/common.mk
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/aidl/device_framework_matrix_product.xml

View File

@ -0,0 +1,10 @@
<compatibility-matrix version="1.0" type="framework" level="7">
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

11
audio/aidl/manifest.xml Normal file
View File

@ -0,0 +1,11 @@
<manifest version="1.0" type="device" target-level="7">
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

25
audio/common.mk Normal file
View File

@ -0,0 +1,25 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/common
#Audio Vendor libraries
PRODUCT_PACKAGES += \
libfvsam_prm_parser \
libmahalcontroller \
libAlgFx_HiFi3z
## AudioHAL Configurations
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration_7_0.xml \
frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration_7_0.xml \
frameworks/av/services/audiopolicy/config/hearing_aid_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/hearing_aid_audio_policy_configuration_7_0.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
## TODO(b/271958194): separate for hidl and aidl.
PRODUCT_SOONG_NAMESPACES += \
vendor/google/whitechapel/audio/hal \
vendor/google/whitechapel/audio/interfaces
$(call soong_config_set,aoc_audio_board,platform,$(TARGET_BOARD_PLATFORM))

View File

@ -0,0 +1,18 @@
<compatibility-matrix version="1.0" type="framework" level="7">
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<version>4.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View File

@ -0,0 +1,18 @@
<compatibility-matrix version="1.0" type="framework" level="6">
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<version>4.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

47
audio/hidl/manifest.xml Normal file
View File

@ -0,0 +1,47 @@
<manifest version="1.0" type="device" target-level="7">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View File

@ -0,0 +1,47 @@
<manifest version="1.0" type="device" target-level="6">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View File

@ -0,0 +1,47 @@
<manifest version="1.0" type="device" target-level="5">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>7.1</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>7.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.whitechapel.audio.audioext</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IAudioExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

39
audio/hidl_gs101.mk Normal file
View File

@ -0,0 +1,39 @@
DEVICE_MANIFEST_FILE += device/google/gs-common/audio/hidl/manifest_gs101$(LOCAL_64ONLY).xml
# Audio HAL Server & Default Implementations
PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \
android.hardware.bluetooth.audio-impl \
android.hardware.soundtrigger@2.3-impl \
vendor.google.whitechapel.audio.audioext@4.0-impl
#Audio HAL libraries
PRODUCT_PACKAGES += \
audio.primary.$(TARGET_BOARD_PLATFORM) \
audio.platform.aoc \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM) \
audio_bt_aoc \
audio_tunnel_aoc \
aoc_aud_ext \
libaoctuningdecoder \
libaoc_waves \
liboffloadeffect \
audio_waves_aoc \
audio_fortemedia_aoc \
audio_bluenote_aoc \
audio_usb_aoc \
audio_spk_35l41 \
audio.usb.default \
audio.usbv2.default \
audio.bluetooth.default \
audio.r_submix.default \
libamcsextfile \
audio_amcs_ext \
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
include device/google/gs-common/audio/common.mk
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product_gs101.xml

39
audio/hidl_gs201.mk Normal file
View File

@ -0,0 +1,39 @@
DEVICE_MANIFEST_FILE += device/google/gs-common/audio/hidl/manifest.xml
# Audio HAL Server & Default Implementations
PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \
android.hardware.soundtrigger@2.3-impl \
vendor.google.whitechapel.audio.audioext@4.0-impl \
android.hardware.bluetooth.audio-impl \
#Audio HAL libraries
PRODUCT_PACKAGES += \
audio.primary.$(TARGET_BOARD_PLATFORM) \
audio.platform.aoc \
audio_tunnel_aoc \
aoc_aud_ext \
libaoctuningdecoder \
liboffloadeffect \
audio_bt_aoc \
audio_waves_aoc \
audio_fortemedia_aoc \
audio_bluenote_aoc \
audio_usb_aoc \
audio_cca_aoc \
libamcsextfile \
audio_amcs_ext \
audio.usb.default \
audio.usbv2.default \
audio.bluetooth.default \
audio.r_submix.default \
audio_spk_35l41 \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
include device/google/gs-common/audio/common.mk
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product.xml

38
audio/hidl_zuma.mk Normal file
View File

@ -0,0 +1,38 @@
DEVICE_MANIFEST_FILE += device/google/gs-common/audio/hidl/manifest.xml
# Audio HAL Server & Default Implementations
PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.audio@7.1-impl \
android.hardware.audio.effect@7.0-impl \
android.hardware.soundtrigger@2.3-impl \
vendor.google.whitechapel.audio.audioext@4.0-impl \
android.hardware.bluetooth.audio-impl \
#Audio HAL libraries
PRODUCT_PACKAGES += \
audio.primary.$(TARGET_BOARD_PLATFORM) \
audio.platform.aoc \
audio_tunnel_aoc \
aoc_aud_ext \
libaoctuningdecoder \
liboffloadeffect \
audio_bt_aoc \
audio_waves_aoc \
audio_fortemedia_aoc \
audio_bluenote_aoc \
audio_usb_aoc \
libamcsextfile \
audio_amcs_ext \
audio.usb.default \
audio.usbv2.default \
audio.bluetooth.default \
audio.r_submix.default \
audio_spk_35l41 \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
include device/google/gs-common/audio/common.mk
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product.xml

View File

@ -0,0 +1,2 @@
# Audio Hal AIDL Service for Aoc
/vendor/bin/hw/android\.hardware\.audio\.service-aidl\.aoc u:object_r:hal_audio_default_exec:s0

View File

@ -0,0 +1 @@
add_service(hal_audio_default, hal_audio_ext_service)

View File

@ -0,0 +1 @@
allow rild hal_audio_ext_service:service_manager find;

View File

@ -0,0 +1,2 @@
# AMCS device
type amcs_device, dev_type;

View File

@ -0,0 +1,5 @@
# persist
type persist_audio_file, file_type, vendor_persist_type;
# data
type audio_vendor_data_file, file_type, data_file_type;

View File

@ -0,0 +1,11 @@
# AMCS devices
/dev/amcs u:object_r:amcs_device:s0
# AMCS vendor service
/vendor/bin/hw/vendor\.google\.audiometricext@1\.0-service-vendor u:object_r:hal_audiometricext_default_exec:s0
# Audio data files
/data/vendor/audio(/.*)? u:object_r:audio_vendor_data_file:s0
# Audio presist file
/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0

View File

@ -1,6 +1,3 @@
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;
@ -12,10 +9,6 @@ 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 };
add_service(hal_audio_default, hal_audio_ext_service)
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;

View File

@ -1,6 +1,2 @@
# Audio
type hal_audio_ext_hwservice, hwservice_manager_type;
# AudioMetric
type hal_audiometricext_hwservice, hwservice_manager_type;

View File

@ -1,4 +1,3 @@
# 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

View File

@ -0,0 +1,2 @@
# Audio
vendor_internal_prop(vendor_audio_prop)

View File

@ -0,0 +1,10 @@
# 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

View File

@ -0,0 +1,3 @@
hwbinder_use(hal_audio_default)
add_hwservice(hal_audio_default, hal_audio_ext_hwservice)

View File

@ -0,0 +1,2 @@
# Audio
type hal_audio_ext_hwservice, hwservice_manager_type;

View File

@ -0,0 +1,2 @@
# Audio
vendor.google.whitechapel.audio.audioext::IAudioExt u:object_r:hal_audio_ext_hwservice:s0

View File

@ -0,0 +1 @@
allow rild hal_audio_ext_hwservice:hwservice_manager find;