Merge "move modem operation to dump_modemlog" into udc-dev
diff --git a/aoc/sepolicy/device.te b/aoc/sepolicy/device.te
index fbd2b32..fbee004 100644
--- a/aoc/sepolicy/device.te
+++ b/aoc/sepolicy/device.te
@@ -1,5 +1,3 @@
 # AOC device
 type aoc_device, dev_type;
 
-# AMCS device
-type amcs_device, dev_type;
diff --git a/aoc/sepolicy/file.te b/aoc/sepolicy/file.te
index 649e161..602c5fe 100644
--- a/aoc/sepolicy/file.te
+++ b/aoc/sepolicy/file.te
@@ -7,10 +7,6 @@
 
 # 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/sepolicy/file_contexts b/aoc/sepolicy/file_contexts
index 70af43f..65f4aa5 100644
--- a/aoc/sepolicy/file_contexts
+++ b/aoc/sepolicy/file_contexts
@@ -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
diff --git a/aoc/sepolicy/hwservice.te b/aoc/sepolicy/hwservice.te
deleted file mode 100644
index b7bf5d9..0000000
--- a/aoc/sepolicy/hwservice.te
+++ /dev/null
@@ -1,6 +0,0 @@
-# Audio
-type hal_audio_ext_hwservice, hwservice_manager_type;
-
-# AudioMetric
-type hal_audiometricext_hwservice, hwservice_manager_type;
-
diff --git a/aoc/sepolicy/hwservice_contexts b/aoc/sepolicy/hwservice_contexts
deleted file mode 100644
index f06c846..0000000
--- a/aoc/sepolicy/hwservice_contexts
+++ /dev/null
@@ -1,4 +0,0 @@
-# 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
-
diff --git a/aoc/sepolicy/property.te b/aoc/sepolicy/property.te
index d38e3ec..e6f9ddb 100644
--- a/aoc/sepolicy/property.te
+++ b/aoc/sepolicy/property.te
@@ -1,4 +1,2 @@
 # AoC
 vendor_internal_prop(vendor_aoc_prop)
-# Audio
-vendor_internal_prop(vendor_audio_prop)
diff --git a/aoc/sepolicy/property_contexts b/aoc/sepolicy/property_contexts
index e957de6..0838873 100644
--- a/aoc/sepolicy/property_contexts
+++ b/aoc/sepolicy/property_contexts
@@ -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
diff --git a/audio/aidl.mk b/audio/aidl.mk
new file mode 100644
index 0000000..1044148
--- /dev/null
+++ b/audio/aidl.mk
@@ -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
diff --git a/audio/aidl/device_framework_matrix_product.xml b/audio/aidl/device_framework_matrix_product.xml
new file mode 100644
index 0000000..48b8889
--- /dev/null
+++ b/audio/aidl/device_framework_matrix_product.xml
@@ -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>
diff --git a/audio/aidl/manifest.xml b/audio/aidl/manifest.xml
new file mode 100644
index 0000000..8d957cc
--- /dev/null
+++ b/audio/aidl/manifest.xml
@@ -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>
diff --git a/audio/common.mk b/audio/common.mk
new file mode 100644
index 0000000..7f3375b
--- /dev/null
+++ b/audio/common.mk
@@ -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))
diff --git a/audio/hidl/device_framework_matrix_product.xml b/audio/hidl/device_framework_matrix_product.xml
new file mode 100644
index 0000000..4c0a3c1
--- /dev/null
+++ b/audio/hidl/device_framework_matrix_product.xml
@@ -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>
diff --git a/audio/hidl/device_framework_matrix_product_gs101.xml b/audio/hidl/device_framework_matrix_product_gs101.xml
new file mode 100644
index 0000000..e1bd62a
--- /dev/null
+++ b/audio/hidl/device_framework_matrix_product_gs101.xml
@@ -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>
diff --git a/audio/hidl/manifest.xml b/audio/hidl/manifest.xml
new file mode 100644
index 0000000..80eec22
--- /dev/null
+++ b/audio/hidl/manifest.xml
@@ -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>
diff --git a/audio/hidl/manifest_gs101.xml b/audio/hidl/manifest_gs101.xml
new file mode 100644
index 0000000..c2fba61
--- /dev/null
+++ b/audio/hidl/manifest_gs101.xml
@@ -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>
diff --git a/audio/hidl/manifest_gs101_64.xml b/audio/hidl/manifest_gs101_64.xml
new file mode 100644
index 0000000..0022cea
--- /dev/null
+++ b/audio/hidl/manifest_gs101_64.xml
@@ -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>
diff --git a/audio/hidl_gs101.mk b/audio/hidl_gs101.mk
new file mode 100644
index 0000000..f764e7a
--- /dev/null
+++ b/audio/hidl_gs101.mk
@@ -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
diff --git a/audio/hidl_gs201.mk b/audio/hidl_gs201.mk
new file mode 100644
index 0000000..1438b27
--- /dev/null
+++ b/audio/hidl_gs201.mk
@@ -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
diff --git a/audio/hidl_zuma.mk b/audio/hidl_zuma.mk
new file mode 100644
index 0000000..980d5fb
--- /dev/null
+++ b/audio/hidl_zuma.mk
@@ -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
diff --git a/audio/sepolicy/aidl/file_contexts b/audio/sepolicy/aidl/file_contexts
new file mode 100644
index 0000000..9e07893
--- /dev/null
+++ b/audio/sepolicy/aidl/file_contexts
@@ -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
diff --git a/audio/sepolicy/aidl/hal_audio_default.te b/audio/sepolicy/aidl/hal_audio_default.te
new file mode 100644
index 0000000..2512a17
--- /dev/null
+++ b/audio/sepolicy/aidl/hal_audio_default.te
@@ -0,0 +1 @@
+add_service(hal_audio_default, hal_audio_ext_service)
diff --git a/audio/sepolicy/aidl/rild.te b/audio/sepolicy/aidl/rild.te
new file mode 100644
index 0000000..218a69d
--- /dev/null
+++ b/audio/sepolicy/aidl/rild.te
@@ -0,0 +1 @@
+allow rild hal_audio_ext_service:service_manager find;
diff --git a/aoc/sepolicy/service.te b/audio/sepolicy/aidl/service.te
similarity index 100%
rename from aoc/sepolicy/service.te
rename to audio/sepolicy/aidl/service.te
diff --git a/aoc/sepolicy/service_contexts b/audio/sepolicy/aidl/service_contexts
similarity index 100%
rename from aoc/sepolicy/service_contexts
rename to audio/sepolicy/aidl/service_contexts
diff --git a/audio/sepolicy/common/device.te b/audio/sepolicy/common/device.te
new file mode 100644
index 0000000..b4e77e5
--- /dev/null
+++ b/audio/sepolicy/common/device.te
@@ -0,0 +1,2 @@
+# AMCS device
+type amcs_device, dev_type;
diff --git a/audio/sepolicy/common/file.te b/audio/sepolicy/common/file.te
new file mode 100644
index 0000000..353ab9f
--- /dev/null
+++ b/audio/sepolicy/common/file.te
@@ -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;
diff --git a/audio/sepolicy/common/file_contexts b/audio/sepolicy/common/file_contexts
new file mode 100644
index 0000000..1480861
--- /dev/null
+++ b/audio/sepolicy/common/file_contexts
@@ -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
diff --git a/aoc/sepolicy/genfs_contexts b/audio/sepolicy/common/genfs_contexts
similarity index 100%
rename from aoc/sepolicy/genfs_contexts
rename to audio/sepolicy/common/genfs_contexts
diff --git a/aoc/sepolicy/hal_audio_default.te b/audio/sepolicy/common/hal_audio_default.te
similarity index 84%
rename from aoc/sepolicy/hal_audio_default.te
rename to audio/sepolicy/common/hal_audio_default.te
index 461875c..7465532 100644
--- a/aoc/sepolicy/hal_audio_default.te
+++ b/audio/sepolicy/common/hal_audio_default.te
@@ -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 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;
diff --git a/aoc/sepolicy/hal_audiometricext_default.te b/audio/sepolicy/common/hal_audiometricext_default.te
similarity index 100%
rename from aoc/sepolicy/hal_audiometricext_default.te
rename to audio/sepolicy/common/hal_audiometricext_default.te
diff --git a/audio/sepolicy/common/hwservice.te b/audio/sepolicy/common/hwservice.te
new file mode 100644
index 0000000..0809453
--- /dev/null
+++ b/audio/sepolicy/common/hwservice.te
@@ -0,0 +1,2 @@
+# AudioMetric
+type hal_audiometricext_hwservice, hwservice_manager_type;
diff --git a/audio/sepolicy/common/hwservice_contexts b/audio/sepolicy/common/hwservice_contexts
new file mode 100644
index 0000000..85c05e5
--- /dev/null
+++ b/audio/sepolicy/common/hwservice_contexts
@@ -0,0 +1,3 @@
+# Audio
+vendor.google.audiometricext::IAudioMetricExt                   u:object_r:hal_audiometricext_hwservice:s0
+
diff --git a/audio/sepolicy/common/property.te b/audio/sepolicy/common/property.te
new file mode 100644
index 0000000..e2ffcd1
--- /dev/null
+++ b/audio/sepolicy/common/property.te
@@ -0,0 +1,2 @@
+# Audio
+vendor_internal_prop(vendor_audio_prop)
diff --git a/audio/sepolicy/common/property_contexts b/audio/sepolicy/common/property_contexts
new file mode 100644
index 0000000..aa981f1
--- /dev/null
+++ b/audio/sepolicy/common/property_contexts
@@ -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
diff --git a/audio/sepolicy/hidl/hal_audio_default.te b/audio/sepolicy/hidl/hal_audio_default.te
new file mode 100644
index 0000000..bdc3bf9
--- /dev/null
+++ b/audio/sepolicy/hidl/hal_audio_default.te
@@ -0,0 +1,3 @@
+hwbinder_use(hal_audio_default)
+
+add_hwservice(hal_audio_default, hal_audio_ext_hwservice)
diff --git a/audio/sepolicy/hidl/hwservice.te b/audio/sepolicy/hidl/hwservice.te
new file mode 100644
index 0000000..15aaaf7
--- /dev/null
+++ b/audio/sepolicy/hidl/hwservice.te
@@ -0,0 +1,2 @@
+# Audio
+type hal_audio_ext_hwservice, hwservice_manager_type;
diff --git a/audio/sepolicy/hidl/hwservice_contexts b/audio/sepolicy/hidl/hwservice_contexts
new file mode 100644
index 0000000..8eadd21
--- /dev/null
+++ b/audio/sepolicy/hidl/hwservice_contexts
@@ -0,0 +1,2 @@
+# Audio
+vendor.google.whitechapel.audio.audioext::IAudioExt             u:object_r:hal_audio_ext_hwservice:s0
diff --git a/audio/sepolicy/hidl/rild.te b/audio/sepolicy/hidl/rild.te
new file mode 100644
index 0000000..378d26c
--- /dev/null
+++ b/audio/sepolicy/hidl/rild.te
@@ -0,0 +1 @@
+allow rild hal_audio_ext_hwservice:hwservice_manager find;
diff --git a/display/Android.bp b/display/Android.bp
index c3b346b..63dd76e 100644
--- a/display/Android.bp
+++ b/display/Android.bp
@@ -25,3 +25,18 @@
     relative_install_path: "dump",
 }
 
+cc_binary {
+    name: "dump_second_display",
+    srcs: ["dump_second_display.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    shared_libs: [
+        "libdump",
+    ],
+    vendor: true,
+    relative_install_path: "dump",
+}
+
diff --git a/display/dump_second_display.cpp b/display/dump_second_display.cpp
new file mode 100644
index 0000000..a6f2665
--- /dev/null
+++ b/display/dump_second_display.cpp
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <dump/pixel_dump.h>
+
+int main() {
+    dumpFileContent("DECON-1 counters /sys/class/drm/card0/device/decon1/counters", "/sys/class/drm/card0/device/decon1/counters");
+    dumpFileContent("CRTC-1 event log", "/sys/kernel/debug/dri/0/crtc-1/event");
+    dumpFileContent("Secondary panel name", "/sys/devices/platform/exynos-drm/secondary-panel/panel_name");
+    dumpFileContent("Secondary panel extra info", "/sys/devices/platform/exynos-drm/secondary-panel/panel_extinfo");
+    return 0;
+}
+
diff --git a/display/dump_second_display.mk b/display/dump_second_display.mk
new file mode 100644
index 0000000..dfab73e
--- /dev/null
+++ b/display/dump_second_display.mk
@@ -0,0 +1,3 @@
+PRODUCT_PACKAGES += dump_second_display
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display
+
diff --git a/display/sepolicy_second_display/dump_second_display.te b/display/sepolicy_second_display/dump_second_display.te
new file mode 100644
index 0000000..62d9c2d
--- /dev/null
+++ b/display/sepolicy_second_display/dump_second_display.te
@@ -0,0 +1,9 @@
+pixel_bugreport(dump_second_display)
+
+allow dump_second_display sysfs_display:file r_file_perms;
+
+userdebug_or_eng(`
+  allow dump_second_display vendor_dri_debugfs:dir r_dir_perms;
+  allow dump_second_display vendor_dri_debugfs:file r_file_perms;
+')
+
diff --git a/display/sepolicy_second_display/file_contexts b/display/sepolicy_second_display/file_contexts
new file mode 100644
index 0000000..d9bb31c
--- /dev/null
+++ b/display/sepolicy_second_display/file_contexts
@@ -0,0 +1,2 @@
+/vendor/bin/dump/dump_second_display          u:object_r:dump_second_display_exec:s0
+
diff --git a/edgetpu/sepolicy/hal_neuralnetworks_darwinn.te b/edgetpu/sepolicy/hal_neuralnetworks_darwinn.te
index f301a72..02e485c 100644
--- a/edgetpu/sepolicy/hal_neuralnetworks_darwinn.te
+++ b/edgetpu/sepolicy/hal_neuralnetworks_darwinn.te
@@ -51,3 +51,6 @@
 # Allow NNAPI HAL to send trace packets to Perfetto with SELinux enabled
 # under userdebug builds.
 userdebug_or_eng(`perfetto_producer(hal_neuralnetworks_darwinn)')
+
+# Allow NNAPI HAL to read tflite DarwiNN delegate properties
+get_prop(hal_neuralnetworks_darwinn, vendor_tflite_delegate_prop)
diff --git a/radio/Android.bp b/radio/Android.bp
new file mode 100644
index 0000000..29b0f16
--- /dev/null
+++ b/radio/Android.bp
@@ -0,0 +1,20 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_binary {
+    name: "dump_radio",
+    srcs: ["dump_radio.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    shared_libs: [
+        "libbase",
+        "libdump",
+    ],
+    vendor: true,
+    relative_install_path: "dump",
+}
+
diff --git a/radio/dump.mk b/radio/dump.mk
new file mode 100644
index 0000000..0c4d09d
--- /dev/null
+++ b/radio/dump.mk
@@ -0,0 +1,4 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/radio/sepolicy/
+
+PRODUCT_PACKAGES_DEBUG += dump_radio
+
diff --git a/radio/dump_radio.cpp b/radio/dump_radio.cpp
new file mode 100644
index 0000000..64d137e
--- /dev/null
+++ b/radio/dump_radio.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <dump/pixel_dump.h>
+#include <android-base/properties.h>
+#include <android-base/file.h>
+
+#define RIL_LOG_DIRECTORY "/data/vendor/radio"
+#define RIL_LOG_DIRECTORY_PROPERTY "persist.vendor.ril.log.base_dir"
+#define RIL_LOG_NUMBER_PROPERTY "persist.vendor.ril.log.num_file"
+#define RIL_LOG_PREFIX "rild.log."
+
+int main() {
+    std::string rilLogDir = ::android::base::GetProperty(RIL_LOG_DIRECTORY_PROPERTY, RIL_LOG_DIRECTORY);
+
+    int maxFileNum = ::android::base::GetIntProperty(RIL_LOG_NUMBER_PROPERTY, 50);
+
+    const std::string currentLogDir = concatenatePath(rilLogDir.c_str(), "/cur");
+    const std::string previousLogDir = concatenatePath(rilLogDir.c_str(), "/prev");
+    const std::string currentDestDir = concatenatePath(BUGREPORT_PACKING_DIR, "cur");
+    const std::string previousDestDir = concatenatePath(BUGREPORT_PACKING_DIR, "prev");
+    if (mkdir(currentDestDir.c_str(), 0777) == -1) {
+        printf("Unable to create folder: %s\n", currentDestDir.c_str());
+        return 0;
+    }
+    if (mkdir(previousDestDir.c_str(), 0777) == -1) {
+        printf("Unable to create folder: %s\n", previousDestDir.c_str());
+        return 0;
+    }
+
+    dumpLogs(currentLogDir.c_str(), currentDestDir.c_str(), maxFileNum, RIL_LOG_PREFIX);
+    dumpLogs(previousLogDir.c_str(), previousDestDir.c_str(), maxFileNum, RIL_LOG_PREFIX);
+    return 0;
+}
diff --git a/radio/sepolicy/dump_radio.te b/radio/sepolicy/dump_radio.te
new file mode 100644
index 0000000..3fe29c9
--- /dev/null
+++ b/radio/sepolicy/dump_radio.te
@@ -0,0 +1,7 @@
+pixel_bugreport(dump_radio)
+
+userdebug_or_eng(`
+  allow dump_radio radio_vendor_data_file:dir create_dir_perms;
+  allow dump_radio radio_vendor_data_file:file create_file_perms;
+  get_prop(dump_radio, vendor_rild_prop)
+')
diff --git a/radio/sepolicy/file_contexts b/radio/sepolicy/file_contexts
new file mode 100644
index 0000000..558beb3
--- /dev/null
+++ b/radio/sepolicy/file_contexts
@@ -0,0 +1 @@
+/vendor/bin/dump/dump_radio           u:object_r:dump_radio_exec:s0
diff --git a/umfw_stat/Android.bp b/umfw_stat/Android.bp
new file mode 100644
index 0000000..765c4be
--- /dev/null
+++ b/umfw_stat/Android.bp
@@ -0,0 +1,36 @@
+//
+// Copyright (C) 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Package defs.
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+// UmfwStat dump tool binary.
+cc_binary {
+    name: "dump_umfw_stat",
+    srcs: ["dump_umfw_stat.cpp"],
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wextra",
+    ],
+    shared_libs: [
+        "libdump",
+    ],
+    vendor: true,
+    relative_install_path: "dump",
+}
diff --git a/umfw_stat/dump_umfw_stat.cpp b/umfw_stat/dump_umfw_stat.cpp
new file mode 100644
index 0000000..63478cd
--- /dev/null
+++ b/umfw_stat/dump_umfw_stat.cpp
@@ -0,0 +1,33 @@
+//
+// Copyright (C) 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+//
+// UmfwStat dump tool.
+//
+
+#include <dump/pixel_dump.h>
+
+int main() {
+  // Set stdout to be unbuffered.
+  setbuf(stdout, NULL);
+
+  // Dump AoC statistics.
+  // TODO(b/272300997): Add timeouts for requests.
+  runCommand("AoC statistics", "timeout 5 /vendor/bin/umfw_stat_tool get_all");
+
+  return 0;
+}
+
diff --git a/umfw_stat/sepolicy/dump_umfw_stat.te b/umfw_stat/sepolicy/dump_umfw_stat.te
new file mode 100644
index 0000000..dac2d25
--- /dev/null
+++ b/umfw_stat/sepolicy/dump_umfw_stat.te
@@ -0,0 +1,27 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# UmfwStat dump tool type enforcing file.
+#
+
+pixel_bugreport(dump_umfw_stat)
+allow dump_umfw_stat aoc_device:chr_file rw_file_perms;
+allow dump_umfw_stat device:dir r_dir_perms;
+allow dump_umfw_stat vendor_shell_exec:file execute_no_trans;
+allow dump_umfw_stat vendor_umfw_stat_tool:file execute_no_trans;
+allow dump_umfw_stat vendor_toolbox_exec:file execute_no_trans;
+
diff --git a/umfw_stat/sepolicy/file.te b/umfw_stat/sepolicy/file.te
new file mode 100644
index 0000000..239ce5a
--- /dev/null
+++ b/umfw_stat/sepolicy/file.te
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# UmfwStat type enforcing file.
+#
+
+type vendor_umfw_stat_tool, vendor_file_type, file_type;
diff --git a/umfw_stat/sepolicy/file_contexts b/umfw_stat/sepolicy/file_contexts
new file mode 100644
index 0000000..876ba67
--- /dev/null
+++ b/umfw_stat/sepolicy/file_contexts
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# UmfwStat security contexts.
+#
+
+/vendor/bin/dump/dump_umfw_stat     u:object_r:dump_umfw_stat_exec:s0
+/vendor/bin/umfw_stat_tool          u:object_r:vendor_umfw_stat_tool:s0
diff --git a/umfw_stat/umfw_stat.mk b/umfw_stat/umfw_stat.mk
new file mode 100644
index 0000000..102e63f
--- /dev/null
+++ b/umfw_stat/umfw_stat.mk
@@ -0,0 +1,27 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# UmfwStat product makefile.
+#
+
+# Add UmfwStat product packages.
+PRODUCT_PACKAGES += dump_umfw_stat
+PRODUCT_PACKAGES += umfw_stat_tool
+
+# Add UmfwStat SELinx policy.
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/umfw_stat/sepolicy
+