create display userdebug dump

Bug: 269212897
Test: adb bugreport
Change-Id: I666fb3e0872f8afcf5b8a2d8b598245fbcdbb151
diff --git a/display/Android.bp b/display/Android.bp
new file mode 100644
index 0000000..4ca3636
--- /dev/null
+++ b/display/Android.bp
@@ -0,0 +1,10 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+sh_binary {
+    name: "dump_display_userdebug.sh",
+    src: "dump_display_userdebug.sh",
+    vendor: true,
+    sub_dir: "dump",
+}
diff --git a/display/dump.mk b/display/dump.mk
new file mode 100644
index 0000000..a1519c3
--- /dev/null
+++ b/display/dump.mk
@@ -0,0 +1,3 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy
+
+PRODUCT_PACKAGES_DEBUG += dump_display_userdebug.sh
diff --git a/display/dump_display_userdebug.sh b/display/dump_display_userdebug.sh
new file mode 100644
index 0000000..b66a4fe
--- /dev/null
+++ b/display/dump_display_userdebug.sh
@@ -0,0 +1,22 @@
+#!/vendor/bin/sh
+echo "------ HWC Fence States ------"
+for f in $(ls /data/vendor/log/hwc/*_hwc_fence_state*.txt)
+do
+  echo $f
+  cat $f
+done
+
+echo "------ HWC Error Logs ------"
+for f in $(ls /data/vendor/log/hwc/*_hwc_error_log*.txt)
+do
+  echo $f
+  cat $f
+done
+
+echo "------ HWC Debug Dumps ------"
+for f in $(ls /data/vendor/log/hwc/*_hwc_debug*.dump)
+do
+  echo $f
+  cat $f
+done
+
diff --git a/display/sepolicy/dump_display_userdebug.te b/display/sepolicy/dump_display_userdebug.te
new file mode 100644
index 0000000..a3f83bb
--- /dev/null
+++ b/display/sepolicy/dump_display_userdebug.te
@@ -0,0 +1,8 @@
+pixel_bugreport(dump_display_userdebug)
+
+userdebug_or_eng(`
+  allow dump_display_userdebug vendor_toolbox_exec:file execute_no_trans;
+  allow dump_display_userdebug vendor_log_file:dir search;
+  allow dump_display_userdebug vendor_hwc_log_file:dir r_dir_perms;
+  allow dump_display_userdebug vendor_hwc_log_file:file r_file_perms;
+')
diff --git a/display/sepolicy/file.te b/display/sepolicy/file.te
new file mode 100644
index 0000000..bc43f3a
--- /dev/null
+++ b/display/sepolicy/file.te
@@ -0,0 +1 @@
+type vendor_hwc_log_file, file_type, data_file_type;
diff --git a/display/sepolicy/file_contexts b/display/sepolicy/file_contexts
new file mode 100644
index 0000000..bd9bb34
--- /dev/null
+++ b/display/sepolicy/file_contexts
@@ -0,0 +1,4 @@
+/vendor/bin/dump/dump_display_userdebug\.sh      u:object_r:dump_display_userdebug_exec:s0
+
+/data/vendor/log/hwc(/.*)?                       u:object_r:vendor_hwc_log_file:s0
+