add audio HAL service

(cherry picked from commit 70a358f84de3e9f97f802a00f99a7f034704a86a)
Bug: 32022304
Test: Angler builds
Change-Id: Iecbc9d46ddff9040b4b67b1f89bd33db773b687a
diff --git a/device.mk b/device.mk
index 9fe3ce2..af614f7 100644
--- a/device.mk
+++ b/device.mk
@@ -189,6 +189,20 @@
     libaudio-resampler \
     dsm_ctrl
 
+ifeq ($(ENABLE_TREBLE), true)
+PRODUCT_PACKAGES += \
+    android.hardware.audio@2.0-service
+endif
+
+PRODUCT_PACKAGES += \
+    android.hardware.soundtrigger@2.0-impl
+
+# TODO(b/31817599) remove when angler_treble goes away
+ifeq ($(TARGET_PRODUCT), angler_treble)
+PRODUCT_PACKAGES += \
+    android.hardware.audio@2.0-service
+endif
+
 # Audio effects
 PRODUCT_PACKAGES += \
     libqcomvisualizer \
diff --git a/sepolicy/android_hardware_soundtrigger_2_0_service.te b/sepolicy/android_hardware_soundtrigger_2_0_service.te
new file mode 100644
index 0000000..267aa82
--- /dev/null
+++ b/sepolicy/android_hardware_soundtrigger_2_0_service.te
@@ -0,0 +1,19 @@
+binder_call(android_hardware_audio_2_0_service, rild)
+
+userdebug_or_eng(`
+  allow android_hardware_audio_2_0_service diag_device:chr_file rw_file_perms;
+')
+
+# access for speaker calibration file
+allow android_hardware_audio_2_0_service persist_file:dir search;
+allow android_hardware_audio_2_0_service persist_audio_file:dir search;
+allow android_hardware_audio_2_0_service persist_audio_file:file r_file_perms;
+
+# allow communication w/perfd
+allow android_hardware_audio_2_0_service perfd_data_file:dir search;
+allow android_hardware_audio_2_0_service perfd_data_file:sock_file write;
+allow android_hardware_audio_2_0_service perfd:unix_dgram_socket sendto;
+allow android_hardware_audio_2_0_service perfd:unix_stream_socket connectto;
+
+# allow reading /sys/devices/soc0/hw_platform for acdb
+allow android_hardware_audio_2_0_service sysfs:file { getattr open read };