create touch stm dump

Bug: 256521567
Test: adb bugreport
Change-Id: Ib48d12272a40fc37a90768f8cec940133e74039e
diff --git a/touch/stm/Android.bp b/touch/stm/Android.bp
new file mode 100644
index 0000000..1727f07
--- /dev/null
+++ b/touch/stm/Android.bp
@@ -0,0 +1,10 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+sh_binary {
+    name: "dump_stm.sh",
+    src: "dump_stm.sh",
+    vendor: true,
+    sub_dir: "dump",
+}
diff --git a/touch/stm/dump_stm.sh b/touch/stm/dump_stm.sh
new file mode 100644
index 0000000..8ef533d
--- /dev/null
+++ b/touch/stm/dump_stm.sh
@@ -0,0 +1,67 @@
+#!/vendor/bin/sh
+spi=`getprop ro.vendor.touch.dump.sys`
+proc=`getprop ro.vendor.touch.dump.proc`
+
+echo "------ Force Set AP as Bus Owner with Bugreport Flag ------"
+echo A0 01 01 > $proc
+
+echo "------ STM touch firmware version ------"
+cat $spi/appid
+
+echo "------ STM touch status ------"
+cat $spi/status
+
+echo "------ Mutual Raw ------"
+echo 13 00 01 > $spi/stm_fts_cmd && cat $spi/stm_fts_cmd
+
+echo "------ Mutual Strength ------"
+echo 17 01 > $spi/stm_fts_cmd && cat $spi/stm_fts_cmd
+
+echo "------ Self Raw ------"
+echo 15 00 01 > $spi/stm_fts_cmd && cat $spi/stm_fts_cmd
+
+echo "------ Mutual Raw Data ------"
+echo 23 00 > $proc && cat $proc
+
+echo "------ Mutual Baseline Data ------"
+echo 23 03 > $proc && cat $proc
+
+echo "------ Mutual Strength Data ------"
+echo 23 02 > $proc && cat $proc
+
+echo "------ Self Raw Data ------"
+echo 24 00 > $proc && cat $proc
+
+echo "------ Self Baseline Data ------"
+echo 24 03 > $proc && cat $proc
+
+echo "------ Self Strength Data ------"
+echo 24 02 > $proc && cat $proc
+
+echo "------ Mutual Compensation ------"
+echo 32 10 > $proc && cat $proc
+
+echo "------ Mutual Low Power Compensation ------"
+echo 32 11 > $proc && cat $proc
+
+echo "------ Self Compensation ------"
+echo 33 12 > $proc && cat $proc
+
+echo "------ Golden Mutual Raw Data ------"
+echo 34 > $proc && cat $proc
+
+echo "------ Packaging Plant - HW reset ------"
+echo 01 FA 20 00 00 24 80 > $proc
+
+echo "------ Packaging Plant - Hibernate Memory ------"
+echo 01 FA 20 00 00 68 08 > $proc
+
+echo "------ Packaging Plant - Read 16 bytes from Address 0x00041FD8 ------"
+echo 02 FB 00 04 3F D8 00 10 01 > $proc && cat $proc
+
+echo "------ ITO Raw ------"
+echo 01 > $spi/stm_fts_cmd && cat $spi/stm_fts_cmd
+
+echo "------ Restore Bus Owner ------"
+echo A0 00 01 > $proc
+
diff --git a/touch/stm/sepolicy/dump_stm.te b/touch/stm/sepolicy/dump_stm.te
new file mode 100644
index 0000000..f2da15f
--- /dev/null
+++ b/touch/stm/sepolicy/dump_stm.te
@@ -0,0 +1,8 @@
+pixel_bugreport(dump_stm)
+
+allow dump_stm proc_touch:file rw_file_perms;
+allow dump_stm sysfs_touch:dir search;
+allow dump_stm sysfs_touch:file rw_file_perms;
+allow dump_stm vendor_toolbox_exec:file execute_no_trans;
+
+get_prop(dump_stm vendor_touch_dump_path_prop)
diff --git a/touch/stm/sepolicy/file.te b/touch/stm/sepolicy/file.te
new file mode 100644
index 0000000..e197bb1
--- /dev/null
+++ b/touch/stm/sepolicy/file.te
@@ -0,0 +1,2 @@
+type proc_touch, proc_type, fs_type;
+type sysfs_touch, sysfs_type, fs_type;
diff --git a/touch/stm/sepolicy/file_contexts b/touch/stm/sepolicy/file_contexts
new file mode 100644
index 0000000..26576ef
--- /dev/null
+++ b/touch/stm/sepolicy/file_contexts
@@ -0,0 +1,2 @@
+/vendor/bin/dump/dump_stm\.sh      u:object_r:dump_stm_exec:s0
+
diff --git a/touch/stm/sepolicy/genfs_contexts b/touch/stm/sepolicy/genfs_contexts
new file mode 100644
index 0000000..2ed8978
--- /dev/null
+++ b/touch/stm/sepolicy/genfs_contexts
@@ -0,0 +1,7 @@
+genfscon sysfs /devices/platform/111d0000.spi/spi_master/spi20/spi20.0  u:object_r:sysfs_touch:s0
+genfscon sysfs /devices/platform/10d40000.spi/spi_master/spi11/spi11.0  u:object_r:sysfs_touch:s0
+genfscon sysfs /devices/platform/10950000.spi/spi_master/spi6/spi6.0    u:object_r:sysfs_touch:s0
+
+genfscon proc  /fts/driver_test                                         u:object_r:proc_touch:s0
+genfscon proc  /fts_ext/driver_test                                     u:object_r:proc_touch:s0
+
diff --git a/touch/stm/sepolicy/property.te b/touch/stm/sepolicy/property.te
new file mode 100644
index 0000000..adb5c0d
--- /dev/null
+++ b/touch/stm/sepolicy/property.te
@@ -0,0 +1,2 @@
+vendor_internal_prop(vendor_touch_dump_path_prop)
+
diff --git a/touch/stm/sepolicy/property_contexts b/touch/stm/sepolicy/property_contexts
new file mode 100644
index 0000000..db9fd5a
--- /dev/null
+++ b/touch/stm/sepolicy/property_contexts
@@ -0,0 +1,2 @@
+ro.vendor.touch.dump. u:object_r:vendor_touch_dump_path_prop:s0
+
diff --git a/touch/stm/stm11.mk b/touch/stm/stm11.mk
new file mode 100644
index 0000000..37d28de
--- /dev/null
+++ b/touch/stm/stm11.mk
@@ -0,0 +1,6 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi11/spi11.0
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.proc=/proc/fts/driver_test
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/stm/sepolicy
+
+PRODUCT_PACKAGES += dump_stm.sh
diff --git a/touch/stm/stm20.mk b/touch/stm/stm20.mk
new file mode 100644
index 0000000..b1034e2
--- /dev/null
+++ b/touch/stm/stm20.mk
@@ -0,0 +1,6 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi20/spi20.0
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.proc=/proc/fts/driver_test
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/stm/sepolicy
+
+PRODUCT_PACKAGES += dump_stm.sh
diff --git a/touch/stm/stm6.mk b/touch/stm/stm6.mk
new file mode 100644
index 0000000..bf6e420
--- /dev/null
+++ b/touch/stm/stm6.mk
@@ -0,0 +1,6 @@
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi6/spi6.0
+PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.proc=/proc/fts_ext/driver_test
+
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/stm/sepolicy
+
+PRODUCT_PACKAGES += dump_stm.sh