Merge "audio: add audio hal aidl service" into udc-dev
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
+