Merge "audio: add audio HAL parameter parser and its sepolicy" into udc-qpr-dev
diff --git a/OWNERS b/OWNERS
index efbb786..b807c00 100644
--- a/OWNERS
+++ b/OWNERS
@@ -9,4 +9,8 @@
 robinpeng@google.com
 achant@google.com
 etam@google.com
-pattjin@google.com
\ No newline at end of file
+pattjin@google.com
+bkhalife@google.com
+lokeshgoel@google.com
+jainne@google.com
+pscovanner@google.com
\ No newline at end of file
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/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/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 3734e31..b9583ea 100644
--- a/camera/lyric.mk
+++ b/camera/lyric.mk
@@ -28,6 +28,7 @@
 # code coverage support, temporary require separate namespace for folders that
 # can be built successfully.
 PRODUCT_SOONG_NAMESPACES += \
+    vendor/google/camera/common/g3_shared \
     vendor/google/camera/google_3a/libs_v4/g3ABase \
     vendor/google/camera/google_3a/libs_v4/gABC/native_coverage \
     vendor/google/camera/google_3a/libs_v4/gAF \
@@ -49,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/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/vendor_pbcs_app.te b/camera/sepolicy/vendor_pbcs_app.te
new file mode 100644
index 0000000..ad29dbb
--- /dev/null
+++ b/camera/sepolicy/vendor_pbcs_app.te
@@ -0,0 +1,5 @@
+type vendor_pbcs_app, domain, coredomain;
+
+app_domain(vendor_pbcs_app);
+
+allow vendor_pbcs_app app_api_service:service_manager find;
diff --git a/gps/dump/dump_gps.cpp b/gps/dump/dump_gps.cpp
index d569f9b..a217d14 100644
--- a/gps/dump/dump_gps.cpp
+++ b/gps/dump/dump_gps.cpp
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include <unistd.h>
 #include <dump/pixel_dump.h>
 #include <android-base/properties.h>
 #include <android-base/file.h>
@@ -24,6 +25,7 @@
 #define GPS_MCU_LOG_PREFIX "esw-"
 #define GPS_MALLOC_LOG_DIRECTORY "/data/vendor/gps"
 #define GPS_MALLOC_LOG_PREFIX "malloc_"
+#define GPS_VENDOR_CHIP_INFO "/data/vendor/gps/chip.info"
 
 int main() {
     if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
@@ -41,6 +43,9 @@
     dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 3, GPS_MCU_LOG_PREFIX);
     dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), maxFileNum, GPS_LOG_PREFIX);
     dumpLogs(GPS_MALLOC_LOG_DIRECTORY, outputDir.c_str(), 1, GPS_MALLOC_LOG_PREFIX);
+    if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) {
+        copyFile(GPS_VENDOR_CHIP_INFO, concatenatePath(outputDir.c_str(), "chip.info").c_str());
+    }
     return 0;
 }
 
diff --git a/gxp/dump_gxp.cpp b/gxp/dump_gxp.cpp
index 5a0bb3b..518a44a 100644
--- a/gxp/dump_gxp.cpp
+++ b/gxp/dump_gxp.cpp
@@ -21,17 +21,17 @@
 
 int main() {
     /* TODO(b/277094681): Set default value to false around device beta milestone. */
-    if(::android::base::GetBoolProperty("vendor.gxp.attach_to_bugreport", true)) {
-        std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "gxp_ssrdump");
-        printf("Creating %s", outputDir.c_str());
-        if (mkdir(outputDir.c_str(), 0777) == -1) {
-            printf("Unable to create folder: %s\n", outputDir.c_str());
-            return 0;
-        }
-
-        dumpLogs("/data/vendor/ssrdump/coredump", outputDir.c_str(), maxGxpDebugDumps, "coredump_gxp_");
-        dumpLogs("/data/vendor/ssrdump", outputDir.c_str(), maxGxpDebugDumps, "crashinfo_gxp_");
+    /* TODO(b/288368306): Create an android property for enabling/disabling
+     * bugreport collection for gxp */
+    std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "gxp_ssrdump");
+    printf("Creating %s", outputDir.c_str());
+    if (mkdir(outputDir.c_str(), 0777) == -1) {
+        printf("Unable to create folder: %s\n", outputDir.c_str());
+        return 0;
     }
+
+    dumpLogs("/data/vendor/ssrdump/coredump", outputDir.c_str(), maxGxpDebugDumps, "coredump_gxp_");
+    dumpLogs("/data/vendor/ssrdump", outputDir.c_str(), maxGxpDebugDumps, "crashinfo_gxp_");
     return 0;
 }
 
diff --git a/misc_writer/misc_writer.mk b/misc_writer/misc_writer.mk
new file mode 100644
index 0000000..7cb6c9a
--- /dev/null
+++ b/misc_writer/misc_writer.mk
@@ -0,0 +1,4 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/misc_writer
+
+PRODUCT_PACKAGES += \
+    misc_writer
diff --git a/misc_writer/vendor_misc_writer.te b/misc_writer/vendor_misc_writer.te
new file mode 100644
index 0000000..dd47f02
--- /dev/null
+++ b/misc_writer/vendor_misc_writer.te
@@ -0,0 +1 @@
+get_prop(vendor_misc_writer, sota_prop)
diff --git a/performance/sepolicy/genfs_contexts b/performance/sepolicy/genfs_contexts
new file mode 100644
index 0000000..000c41b
--- /dev/null
+++ b/performance/sepolicy/genfs_contexts
@@ -0,0 +1 @@
+genfscon proc /sys/kernel/sched_pelt_multiplier u:object_r:proc_sched:s0
diff --git a/touch/gti/dump_gti0.sh b/touch/gti/dump_gti0.sh
index 40886e0..69293dd 100644
--- a/touch/gti/dump_gti0.sh
+++ b/touch/gti/dump_gti0.sh
@@ -41,5 +41,10 @@
 echo "------ Self Test ------"
 cat $path/self_test
 
+if [[ -f "${procfs_path}/dump" ]]; then
+  echo "------ Dump ------"
+  cat ${procfs_path}/dump
+fi
+
 echo "------ Disable Force Touch Active ------"
 echo 0 > $path/force_active
diff --git a/touch/gti/dump_gti1.sh b/touch/gti/dump_gti1.sh
index 79aa5fb..8cc69cf 100644
--- a/touch/gti/dump_gti1.sh
+++ b/touch/gti/dump_gti1.sh
@@ -41,5 +41,10 @@
 echo "------ Self Test ------"
 cat $path/self_test
 
+if [[ -f "${procfs_path}/dump" ]]; then
+  echo "------ Dump ------"
+  cat ${procfs_path}/dump
+fi
+
 echo "------ Disable Force Touch Active ------"
 echo 0 > $path/force_active
diff --git a/touch/gti/init.touch.gti0.rc b/touch/gti/init.touch.gti0.rc
index 5489ff8..baf03dd 100644
--- a/touch/gti/init.touch.gti0.rc
+++ b/touch/gti/init.touch.gti0.rc
@@ -15,6 +15,7 @@
     # Procfs
     chown system system /proc/goog_touch_interface
     chown system system /proc/goog_touch_interface/gti.0
+    chown system system /proc/goog_touch_interface/gti.0/dump
     chown system system /proc/goog_touch_interface/gti.0/ms_base
     chown system system /proc/goog_touch_interface/gti.0/ms_diff
     chown system system /proc/goog_touch_interface/gti.0/ms_raw
diff --git a/touch/gti/init.touch.gti1.rc b/touch/gti/init.touch.gti1.rc
index 28c8204..d8a37e4 100644
--- a/touch/gti/init.touch.gti1.rc
+++ b/touch/gti/init.touch.gti1.rc
@@ -15,6 +15,7 @@
     # Procfs
     chown system system /proc/goog_touch_interface
     chown system system /proc/goog_touch_interface/gti.1
+    chown system system /proc/goog_touch_interface/gti.1/dump
     chown system system /proc/goog_touch_interface/gti.1/ms_base
     chown system system /proc/goog_touch_interface/gti.1/ms_diff
     chown system system /proc/goog_touch_interface/gti.1/ms_raw