dump_gti: fix I/O error when touch fails to resume am: 476373ef30

Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs-common/+/24023803

Change-Id: I6a4bf15dd185a79780f9512438dec7a6ec0bbb37
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/aoc/sepolicy/file_contexts b/aoc/sepolicy/file_contexts
index fef8d73..c3a4754 100644
--- a/aoc/sepolicy/file_contexts
+++ b/aoc/sepolicy/file_contexts
@@ -18,6 +18,8 @@
 /dev/acd-com.google.umfw_stat       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-com.google.chre             u:object_r:aoc_device:s0
+/dev/acd-com.google.chre.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
diff --git a/audio/aidl.mk b/audio/aidl.mk
index 172b63d..bd11249 100644
--- a/audio/aidl.mk
+++ b/audio/aidl.mk
@@ -2,7 +2,8 @@
 
 # Audio HALs
 PRODUCT_PACKAGES += \
-    android.hardware.audio.service-aidl.aoc
+    android.hardware.audio.service-aidl.aoc \
+    vendor.google.whitechapel.audio.hal.parserservice \
 
 # AIDL software effects. These are the effects supporting in all projects.
 # For the project-specific effects, such as haptic generator, please add them
diff --git a/audio/aidl/device_framework_matrix_product.xml b/audio/aidl/device_framework_matrix_product.xml
index 48b8889..660864a 100644
--- a/audio/aidl/device_framework_matrix_product.xml
+++ b/audio/aidl/device_framework_matrix_product.xml
@@ -1,4 +1,4 @@
-<compatibility-matrix version="1.0" type="framework" level="7">
+<compatibility-matrix version="1.0" type="framework">
     <hal format="hidl">
        <name>vendor.google.audiometricext</name>
        <version>1.0</version>
diff --git a/audio/aidl/manifest.xml b/audio/aidl/manifest.xml
index 8d957cc..237aa4a 100644
--- a/audio/aidl/manifest.xml
+++ b/audio/aidl/manifest.xml
@@ -1,4 +1,4 @@
-<manifest version="1.0" type="device" target-level="7">
+<manifest version="1.0" type="device">
     <hal format="hidl">
        <name>vendor.google.audiometricext</name>
        <transport>hwbinder</transport>
diff --git a/audio/hidl_zuma.mk b/audio/hidl_zuma.mk
index 1438b27..3a5c211 100644
--- a/audio/hidl_zuma.mk
+++ b/audio/hidl_zuma.mk
@@ -30,9 +30,11 @@
 	audio.bluetooth.default \
 	audio.r_submix.default \
 	audio_spk_35l41 \
+	audio_hdmi_aoc \
 	sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
 
 BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio
 
 include device/google/gs-common/audio/common.mk
 
diff --git a/audio/sepolicy/aidl/file_contexts b/audio/sepolicy/aidl/file_contexts
index 9e07893..3f3390e 100644
--- a/audio/sepolicy/aidl/file_contexts
+++ b/audio/sepolicy/aidl/file_contexts
@@ -1,2 +1,3 @@
 # Audio Hal AIDL Service for Aoc
 /vendor/bin/hw/android\.hardware\.audio\.service-aidl\.aoc                  u:object_r:hal_audio_default_exec:s0
+/system_ext/bin/hw/vendor\.google\.whitechapel\.audio\.hal\.parserservice   u:object_r:hal_audio_parameter_parser_exec:s0
diff --git a/audio/sepolicy/aidl/parser_service.te b/audio/sepolicy/aidl/parser_service.te
new file mode 100644
index 0000000..bce6d49
--- /dev/null
+++ b/audio/sepolicy/aidl/parser_service.te
@@ -0,0 +1,14 @@
+# Define a parameter parser service
+type hal_audio_parameter_parser, coredomain, domain;
+type hal_audio_parameter_parser_exec, system_file_type, file_type, exec_type;
+init_daemon_domain(hal_audio_parameter_parser)
+
+# The server will serve a binder service.
+binder_service(hal_audio_parameter_parser)
+
+add_service(hal_audio_parameter_parser, hal_audio_parameter_parser_service);
+
+binder_call(audioserver, hal_audio_parameter_parser)
+binder_call(hal_audio_parameter_parser, servicemanager)
+
+allow audioserver hal_audio_parameter_parser_service:service_manager find;
diff --git a/audio/sepolicy/aidl/service.te b/audio/sepolicy/aidl/service.te
index 052558c..bf73ead 100644
--- a/audio/sepolicy/aidl/service.te
+++ b/audio/sepolicy/aidl/service.te
@@ -1,2 +1,3 @@
 # Audio
 type hal_audio_ext_service, service_manager_type;
+type hal_audio_parameter_parser_service, service_manager_type;
diff --git a/audio/sepolicy/aidl/service_contexts b/audio/sepolicy/aidl/service_contexts
index 1b5f301..c2b7716 100644
--- a/audio/sepolicy/aidl/service_contexts
+++ b/audio/sepolicy/aidl/service_contexts
@@ -1,2 +1,4 @@
 # Audio
 vendor.google.whitechapel.audio.extension.IAudioExtension/default    u:object_r:hal_audio_ext_service:s0
+android.media.audio.IHalAdapterVendorExtension/default               u:object_r:hal_audio_parameter_parser_service:s0
+
diff --git a/audio/sepolicy/common/genfs_contexts b/audio/sepolicy/common/genfs_contexts
index 28cbc63..4b1c3a9 100644
--- a/audio/sepolicy/common/genfs_contexts
+++ b/audio/sepolicy/common/genfs_contexts
@@ -14,3 +14,5 @@
 genfscon sysfs /devices/platform/audiometrics/waves                         u:object_r:sysfs_pixelstats:s0
 genfscon sysfs /devices/platform/audiometrics/adapted_info_active_count     u:object_r:sysfs_pixelstats:s0
 genfscon sysfs /devices/platform/audiometrics/adapted_info_active_duration  u:object_r:sysfs_pixelstats:s0
+genfscon sysfs /devices/platform/audiometrics/pcm_count                     u:object_r:sysfs_pixelstats:s0
+genfscon sysfs /devices/platform/audiometrics/pcm_latency                   u:object_r:sysfs_pixelstats:s0
diff --git a/audio/sepolicy/common/hal_audio_default.te b/audio/sepolicy/common/hal_audio_default.te
index 7465532..5cb03ac 100644
--- a/audio/sepolicy/common/hal_audio_default.te
+++ b/audio/sepolicy/common/hal_audio_default.te
@@ -13,6 +13,10 @@
 allow hal_audio_default amcs_device:chr_file rw_file_perms;
 allow hal_audio_default sysfs_pixelstats:file rw_file_perms;
 
+#allow access to aoc and kernel boottime
+allow hal_audio_default sysfs_aoc:dir { search };
+allow hal_audio_default sysfs_aoc_boottime:file r_file_perms;
+
 #allow access to DMABUF Heaps for AAudio API
 allow hal_audio_default dmabuf_heap_device:chr_file r_file_perms;
 
diff --git a/audio/sepolicy/hdmi_audio/genfs_contexts b/audio/sepolicy/hdmi_audio/genfs_contexts
new file mode 100644
index 0000000..eb7e1cf
--- /dev/null
+++ b/audio/sepolicy/hdmi_audio/genfs_contexts
@@ -0,0 +1 @@
+genfscon sysfs /devices/platform/drmdp-adma/extcon/hdmi_audio                 u:object_r:sysfs_extcon:s0
diff --git a/camera/compatibility_matrix.xml b/camera/compatibility_matrix.xml
new file mode 100644
index 0000000..cd4b76e
--- /dev/null
+++ b/camera/compatibility_matrix.xml
@@ -0,0 +1,13 @@
+<compatibility-matrix version="1.0" type="device">
+    <hal format="aidl" optional="true">
+        <name>com.google.pixel.camera.services.binder</name>
+        <version>1</version>
+        <interface>
+            <name>IServiceBinder</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <vndk>
+        <version>0.0.0</version>
+    </vndk>
+</compatibility-matrix>
diff --git a/camera/device_framework_matrix_product.xml b/camera/device_framework_matrix_product.xml
new file mode 100644
index 0000000..171dfa8
--- /dev/null
+++ b/camera/device_framework_matrix_product.xml
@@ -0,0 +1,10 @@
+<compatibility-matrix version="1.0" type="framework">
+    <hal format="aidl" optional="true">
+        <name>com.google.pixel.camera.connectivity.hal.provider</name>
+        <version>1</version>
+        <interface>
+            <name>ICameraProvider</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+</compatibility-matrix>
diff --git a/camera/lyric.mk b/camera/lyric.mk
index c630539..b9583ea 100644
--- a/camera/lyric.mk
+++ b/camera/lyric.mk
@@ -50,5 +50,11 @@
 PRODUCT_PACKAGES += init.camera.set-interrupts-ownership
 PRODUCT_PACKAGES += lyric_preview_dis_xml
 
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += \
+    device/google/gs-common/camera/device_framework_matrix_product.xml
+
+DEVICE_MATRIX_FILE += \
+    device/google/gs-common/camera/compatibility_matrix.xml
+
 # sepolicy dir is added in dump.mk.
 # Make doesn't deduplicate sepolicy dirs, so including it here causes build errors.
diff --git a/camera/sepolicy/hal_camera_default.te b/camera/sepolicy/hal_camera_default.te
new file mode 100644
index 0000000..9b92a2e
--- /dev/null
+++ b/camera/sepolicy/hal_camera_default.te
@@ -0,0 +1,3 @@
+allow hal_camera_default vendor_camera_binder_service:service_manager find;
+
+binder_call(hal_camera_default, vendor_pbcs_app);
diff --git a/camera/sepolicy/seapp_contexts b/camera/sepolicy/seapp_contexts
new file mode 100644
index 0000000..15eb56f
--- /dev/null
+++ b/camera/sepolicy/seapp_contexts
@@ -0,0 +1,2 @@
+# Pixel PeristentBackgroundCameraServices
+user=system seinfo=platform name=com.google.pixel.camera.services domain=vendor_pbcs_app type=system_app_data_file levelFrom=all
diff --git a/camera/sepolicy/service.te b/camera/sepolicy/service.te
new file mode 100644
index 0000000..b931b40
--- /dev/null
+++ b/camera/sepolicy/service.te
@@ -0,0 +1 @@
+type vendor_camera_binder_service, hal_service_type, protected_service, service_manager_type;
diff --git a/camera/sepolicy/service_contexts b/camera/sepolicy/service_contexts
new file mode 100644
index 0000000..dfebcbb
--- /dev/null
+++ b/camera/sepolicy/service_contexts
@@ -0,0 +1 @@
+com.google.pixel.camera.services.binder.IServiceBinder/default u:object_r:vendor_camera_binder_service:s0
diff --git a/camera/sepolicy/vendor_pbcs_app.te b/camera/sepolicy/vendor_pbcs_app.te
new file mode 100644
index 0000000..cc04c60
--- /dev/null
+++ b/camera/sepolicy/vendor_pbcs_app.te
@@ -0,0 +1,11 @@
+type vendor_pbcs_app, domain, coredomain;
+
+app_domain(vendor_pbcs_app);
+
+allow vendor_pbcs_app system_app_data_file:dir search;
+
+allow vendor_pbcs_app app_api_service:service_manager find;
+
+allow vendor_pbcs_app vendor_camera_binder_service:service_manager add;
+
+binder_call(vendor_pbcs_app, hal_camera_default);
diff --git a/gps/dump/dump_gps.cpp b/gps/dump/dump_gps.cpp
index a217d14..62f69f8 100644
--- a/gps/dump/dump_gps.cpp
+++ b/gps/dump/dump_gps.cpp
@@ -26,6 +26,8 @@
 #define GPS_MALLOC_LOG_DIRECTORY "/data/vendor/gps"
 #define GPS_MALLOC_LOG_PREFIX "malloc_"
 #define GPS_VENDOR_CHIP_INFO "/data/vendor/gps/chip.info"
+#define GPS_RAWLOG_PREFIX "rawbin"
+#define GPS_MEMDUMP_LOG_PREFIX "memdump_"
 
 int main() {
     if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
@@ -46,6 +48,8 @@
     if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) {
         copyFile(GPS_VENDOR_CHIP_INFO, concatenatePath(outputDir.c_str(), "chip.info").c_str());
     }
+    dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), maxFileNum, GPS_RAWLOG_PREFIX);
+    dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 18, GPS_MEMDUMP_LOG_PREFIX);
     return 0;
 }