From 8a52cae4ddbe4975acae3cad58485343d82cc965 Mon Sep 17 00:00:00 2001 From: Ravi Jain Date: Fri, 8 Mar 2024 09:05:00 +0000 Subject: [PATCH 1/3] dumpstate: touch: Init touch_predump service go/touch_predump Test: b/318578275 Test: Locally flash to check dump_touch logs on dogfood devices Bug: 287907308 Change-Id: Ibc9df367549dd69c83936a7fd08465f7bb53ce80 --- touch/predump/Android.bp | 17 ++++++++++ touch/predump/dump_touch.sh | 25 ++++++++++++++ touch/predump/init.touch.predump.rc | 12 +++++++ touch/predump/predump_touch.mk | 4 +++ touch/predump/predump_touch.sh | 44 +++++++++++++++++++++++++ touch/predump/sepolicy/dump_touch.te | 5 +++ touch/predump/sepolicy/file.te | 1 + touch/predump/sepolicy/file_contexts | 5 +++ touch/predump/sepolicy/predump_touch.te | 9 +++++ 9 files changed, 122 insertions(+) create mode 100644 touch/predump/Android.bp create mode 100644 touch/predump/dump_touch.sh create mode 100644 touch/predump/init.touch.predump.rc create mode 100644 touch/predump/predump_touch.mk create mode 100644 touch/predump/predump_touch.sh create mode 100644 touch/predump/sepolicy/dump_touch.te create mode 100644 touch/predump/sepolicy/file.te create mode 100644 touch/predump/sepolicy/file_contexts create mode 100644 touch/predump/sepolicy/predump_touch.te diff --git a/touch/predump/Android.bp b/touch/predump/Android.bp new file mode 100644 index 0000000..7d2adda --- /dev/null +++ b/touch/predump/Android.bp @@ -0,0 +1,17 @@ +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +sh_binary { + name: "predump_touch.sh", + src: "predump_touch.sh", + init_rc: ["init.touch.predump.rc"], + vendor: true, +} + +sh_binary { + name: "dump_touch.sh", + src: "dump_touch.sh", + vendor: true, + sub_dir: "dump", +} diff --git a/touch/predump/dump_touch.sh b/touch/predump/dump_touch.sh new file mode 100644 index 0000000..889c283 --- /dev/null +++ b/touch/predump/dump_touch.sh @@ -0,0 +1,25 @@ +#!/vendor/bin/sh + +DIR=/data/vendor/dump_touch +LOCKFILE="$DIR"/dumping +LOGFILE="$DIR"/dump.log + +if [ ! -f $LOCKFILE ] +then + echo "-----------------------------------------------------" + echo "Error : PreDump Touch Logs couldn't be found." + echo "-----------------------------------------------------" + exit 2 +fi + +state=$(cat $LOCKFILE) +if [ "$state" != 2 ] +then + echo "Unexpected state! Expected 2 but found ${state}" >> $LOGFILE +fi + +cat $LOGFILE +echo "" > $LOGFILE + +echo 0 > $LOCKFILE + diff --git a/touch/predump/init.touch.predump.rc b/touch/predump/init.touch.predump.rc new file mode 100644 index 0000000..aa93c82 --- /dev/null +++ b/touch/predump/init.touch.predump.rc @@ -0,0 +1,12 @@ +service vendor.touch_dumpstate /vendor/bin/predump_touch.sh + class main + user system + group system shell + disabled + oneshot + +on post-fs-data + mkdir /data/vendor/dump_touch 0775 system system + +on property:init.svc.dumpstatez=running + start vendor.touch_dumpstate diff --git a/touch/predump/predump_touch.mk b/touch/predump/predump_touch.mk new file mode 100644 index 0000000..1a6efb2 --- /dev/null +++ b/touch/predump/predump_touch.mk @@ -0,0 +1,4 @@ +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/predump/sepolicy + +PRODUCT_PACKAGES += predump_touch.sh +PRODUCT_PACKAGES += dump_touch.sh diff --git a/touch/predump/predump_touch.sh b/touch/predump/predump_touch.sh new file mode 100644 index 0000000..6a0c738 --- /dev/null +++ b/touch/predump/predump_touch.sh @@ -0,0 +1,44 @@ +#!/vendor/bin/sh + +DIR=/data/vendor/dump_touch +SCRIPT_DIR=/vendor/bin/dump_touch +LOCKFILE="$DIR"/dumping +LOGFILE="$DIR"/dump.log + +if [ ! -f $LOCKFILE ] +then +#Init Setup + echo 0 > $LOCKFILE + echo "" > $LOGFILE + chmod 660 $LOCKFILE + chmod 660 $LOGFILE +fi + +echo $(date) >> $LOGFILE + +state=$(cat $LOCKFILE) +if [ "$state" != 0 ] +then + echo "Unexpected state! Expected 0 but found ${state}" >> $LOGFILE +fi + +echo 1 > $LOCKFILE + +for entry in "$SCRIPT_DIR"/*.sh +do + echo "----------------------------------" >> $LOGFILE + echo "$entry" >> $LOGFILE + echo "----------------------------------" >> $LOGFILE + sh $entry >> $LOGFILE + echo "----------------------------------" >> $LOGFILE +done + +state=$(cat $LOCKFILE) +if [ "$state" != 1 ] +then + echo "Unexpected state! Expected 1 but found ${state}" >> $LOGFILE +fi + +echo 2 > $LOCKFILE + + diff --git a/touch/predump/sepolicy/dump_touch.te b/touch/predump/sepolicy/dump_touch.te new file mode 100644 index 0000000..d383882 --- /dev/null +++ b/touch/predump/sepolicy/dump_touch.te @@ -0,0 +1,5 @@ +pixel_bugreport(dump_touch) + +allow dump_touch vendor_touch_dump_file:dir r_dir_perms; +allow dump_touch vendor_touch_dump_file:file rw_file_perms; +allow dump_touch vendor_toolbox_exec:file execute_no_trans; diff --git a/touch/predump/sepolicy/file.te b/touch/predump/sepolicy/file.te new file mode 100644 index 0000000..9be89f1 --- /dev/null +++ b/touch/predump/sepolicy/file.te @@ -0,0 +1 @@ +type vendor_touch_dump_file, file_type, data_file_type; diff --git a/touch/predump/sepolicy/file_contexts b/touch/predump/sepolicy/file_contexts new file mode 100644 index 0000000..0a1ef36 --- /dev/null +++ b/touch/predump/sepolicy/file_contexts @@ -0,0 +1,5 @@ +/vendor/bin/predump_touch\.sh u:object_r:predump_touch_exec:s0 +/vendor/bin/dump/dump_touch\.sh u:object_r:dump_touch_exec:s0 +/data/vendor/dump_touch/dump\.log u:object_r:vendor_touch_dump_file:s0 +/data/vendor/dump_touch/dumping u:object_r:vendor_touch_dump_file:s0 +/data/vendor/dump_touch u:object_r:vendor_touch_dump_file:s0 diff --git a/touch/predump/sepolicy/predump_touch.te b/touch/predump/sepolicy/predump_touch.te new file mode 100644 index 0000000..edf473b --- /dev/null +++ b/touch/predump/sepolicy/predump_touch.te @@ -0,0 +1,9 @@ +type predump_touch, domain; +type predump_touch_exec, vendor_file_type, exec_type, file_type; +init_daemon_domain(predump_touch) + +allow predump_touch vendor_touch_dump_file:dir rw_dir_perms; +allow predump_touch vendor_touch_dump_file:file create_file_perms; + +allow predump_touch vendor_toolbox_exec:file execute_no_trans; +allow predump_touch vendor_shell_exec:file execute_no_trans; From f7bacf53224151ca304e66875aa88ec101290b18 Mon Sep 17 00:00:00 2001 From: Ravi Jain Date: Fri, 8 Mar 2024 09:09:21 +0000 Subject: [PATCH 2/3] dumpstate: touch: Add touch_predump for gti go/touch_predump Test: b/318578275 Test: Locally flash and check dump logs on dogfood device Bug: 287907308 Change-Id: I4a35a9a57c1331d67dfcd1863b57d75a9b804c32 --- touch/gti/Android.bp | 16 ++++++++++++++++ touch/gti/predump_gti.mk | 7 +++++++ touch/gti/predump_gti_dual.mk | 6 ++++++ touch/gti/predump_sepolicy/file.te | 3 +++ touch/gti/predump_sepolicy/file_contexts | 1 + touch/gti/predump_sepolicy/genfs_contexts | 4 ++++ touch/gti/predump_sepolicy/predump_touch.te | 4 ++++ .../gti/predump_sepolicy_gti_dual/file_contexts | 2 ++ 8 files changed, 43 insertions(+) create mode 100644 touch/gti/predump_gti.mk create mode 100644 touch/gti/predump_gti_dual.mk create mode 100644 touch/gti/predump_sepolicy/file.te create mode 100644 touch/gti/predump_sepolicy/file_contexts create mode 100644 touch/gti/predump_sepolicy/genfs_contexts create mode 100644 touch/gti/predump_sepolicy/predump_touch.te create mode 100644 touch/gti/predump_sepolicy_gti_dual/file_contexts diff --git a/touch/gti/Android.bp b/touch/gti/Android.bp index 7f2eb66..d22a5a4 100644 --- a/touch/gti/Android.bp +++ b/touch/gti/Android.bp @@ -33,3 +33,19 @@ cc_binary { ], vendor: true, } + +sh_binary { + name: "predump_gti0.sh", + src: "dump_gti0.sh", + init_rc: ["init.touch.gti0.rc"], + vendor: true, + sub_dir: "dump_touch", +} + +sh_binary { + name: "predump_gti1.sh", + src: "dump_gti1.sh", + init_rc: ["init.touch.gti1.rc"], + vendor: true, + sub_dir: "dump_touch", +} diff --git a/touch/gti/predump_gti.mk b/touch/gti/predump_gti.mk new file mode 100644 index 0000000..ae25254 --- /dev/null +++ b/touch/gti/predump_gti.mk @@ -0,0 +1,7 @@ +include device/google/gs-common/touch/predump/predump_touch.mk + +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/gti/predump_sepolicy +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/gti/ical/sepolicy + +PRODUCT_PACKAGES += predump_gti0.sh +PRODUCT_PACKAGES += touch_gti_ical diff --git a/touch/gti/predump_gti_dual.mk b/touch/gti/predump_gti_dual.mk new file mode 100644 index 0000000..b7f2efc --- /dev/null +++ b/touch/gti/predump_gti_dual.mk @@ -0,0 +1,6 @@ +include device/google/gs-common/touch/gti/predump_gti.mk + +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/gti/predump_sepolicy_gti_dual +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/gti/ical/sepolicy_gti_dual + +PRODUCT_PACKAGES += predump_gti1.sh diff --git a/touch/gti/predump_sepolicy/file.te b/touch/gti/predump_sepolicy/file.te new file mode 100644 index 0000000..c3900f0 --- /dev/null +++ b/touch/gti/predump_sepolicy/file.te @@ -0,0 +1,3 @@ +type proc_touch_gti, proc_type, fs_type; +type sysfs_touch_gti, sysfs_type, fs_type; + diff --git a/touch/gti/predump_sepolicy/file_contexts b/touch/gti/predump_sepolicy/file_contexts new file mode 100644 index 0000000..6d8ca17 --- /dev/null +++ b/touch/gti/predump_sepolicy/file_contexts @@ -0,0 +1 @@ +/vendor/bin/dump_touch/predump_gti0\.sh u:object_r:predump_touch_exec:s0 diff --git a/touch/gti/predump_sepolicy/genfs_contexts b/touch/gti/predump_sepolicy/genfs_contexts new file mode 100644 index 0000000..45d3b53 --- /dev/null +++ b/touch/gti/predump_sepolicy/genfs_contexts @@ -0,0 +1,4 @@ +# Touch +genfscon sysfs /devices/virtual/goog_touch_interface u:object_r:sysfs_touch_gti:s0 +genfscon proc /goog_touch_interface u:object_r:proc_touch_gti:s0 + diff --git a/touch/gti/predump_sepolicy/predump_touch.te b/touch/gti/predump_sepolicy/predump_touch.te new file mode 100644 index 0000000..7c1f408 --- /dev/null +++ b/touch/gti/predump_sepolicy/predump_touch.te @@ -0,0 +1,4 @@ +allow predump_touch proc_touch_gti:dir r_dir_perms; +allow predump_touch proc_touch_gti:file rw_file_perms; +allow predump_touch sysfs_touch_gti:dir r_dir_perms; +allow predump_touch sysfs_touch_gti:file rw_file_perms; \ No newline at end of file diff --git a/touch/gti/predump_sepolicy_gti_dual/file_contexts b/touch/gti/predump_sepolicy_gti_dual/file_contexts new file mode 100644 index 0000000..02a300a --- /dev/null +++ b/touch/gti/predump_sepolicy_gti_dual/file_contexts @@ -0,0 +1,2 @@ +/vendor/bin/dump_touch/predump_gti1\.sh u:object_r:predump_touch_exec:s0 + From 8d34b54167d835fee74ad7026ae33e24ef7aa3a2 Mon Sep 17 00:00:00 2001 From: Ravi Jain Date: Fri, 8 Mar 2024 09:11:36 +0000 Subject: [PATCH 3/3] dumpstate: touch: Add touch_predump for syna go/touch_predump Test: b/318578275 Test: Flash on dogfood and check touch dump logs Bug: 287907308 Change-Id: I88c488dec5de85545ae5f33f5e65371883982e48 --- touch/syna/Android.bp | 7 +++++++ touch/syna/predump_sepolicy/file.te | 2 ++ touch/syna/predump_sepolicy/file_contexts | 2 ++ touch/syna/predump_sepolicy/genfs_contexts | 3 +++ touch/syna/predump_sepolicy/predump_touch.te | 5 +++++ touch/syna/predump_sepolicy/property.te | 1 + touch/syna/predump_sepolicy/property_contexts | 1 + touch/syna/predump_sepolicy/vendor_init.te | 1 + touch/syna/predump_syna19.mk | 5 +++++ touch/syna/predump_syna20.mk | 5 +++++ 10 files changed, 32 insertions(+) create mode 100644 touch/syna/predump_sepolicy/file.te create mode 100644 touch/syna/predump_sepolicy/file_contexts create mode 100644 touch/syna/predump_sepolicy/genfs_contexts create mode 100644 touch/syna/predump_sepolicy/predump_touch.te create mode 100644 touch/syna/predump_sepolicy/property.te create mode 100644 touch/syna/predump_sepolicy/property_contexts create mode 100644 touch/syna/predump_sepolicy/vendor_init.te create mode 100644 touch/syna/predump_syna19.mk create mode 100644 touch/syna/predump_syna20.mk diff --git a/touch/syna/Android.bp b/touch/syna/Android.bp index 46475d8..d34ee95 100644 --- a/touch/syna/Android.bp +++ b/touch/syna/Android.bp @@ -10,3 +10,10 @@ sh_binary { sub_dir: "dump", } +sh_binary { + name: "predump_syna.sh", + src: "dump_syna.sh", + init_rc: ["init.touch.syna.rc"], + vendor: true, + sub_dir: "dump_touch", +} diff --git a/touch/syna/predump_sepolicy/file.te b/touch/syna/predump_sepolicy/file.te new file mode 100644 index 0000000..3e53ec3 --- /dev/null +++ b/touch/syna/predump_sepolicy/file.te @@ -0,0 +1,2 @@ +type sysfs_touch, sysfs_type, fs_type; + diff --git a/touch/syna/predump_sepolicy/file_contexts b/touch/syna/predump_sepolicy/file_contexts new file mode 100644 index 0000000..37dec52 --- /dev/null +++ b/touch/syna/predump_sepolicy/file_contexts @@ -0,0 +1,2 @@ +/vendor/bin/dump_touch/predump_syna\.sh u:object_r:predump_touch_exec:s0 + diff --git a/touch/syna/predump_sepolicy/genfs_contexts b/touch/syna/predump_sepolicy/genfs_contexts new file mode 100644 index 0000000..f2e675f --- /dev/null +++ b/touch/syna/predump_sepolicy/genfs_contexts @@ -0,0 +1,3 @@ +genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0 +genfscon sysfs /devices/platform/111c0000.spi/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0 +genfscon sysfs /devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs u:object_r:sysfs_touch:s0 diff --git a/touch/syna/predump_sepolicy/predump_touch.te b/touch/syna/predump_sepolicy/predump_touch.te new file mode 100644 index 0000000..8564ec9 --- /dev/null +++ b/touch/syna/predump_sepolicy/predump_touch.te @@ -0,0 +1,5 @@ + +allow predump_touch sysfs_touch:dir r_dir_perms; +allow predump_touch sysfs_touch:file rw_file_perms; + +get_prop(predump_touch, vendor_touch_dump_path_prop) diff --git a/touch/syna/predump_sepolicy/property.te b/touch/syna/predump_sepolicy/property.te new file mode 100644 index 0000000..5484690 --- /dev/null +++ b/touch/syna/predump_sepolicy/property.te @@ -0,0 +1 @@ +vendor_internal_prop(vendor_touch_dump_path_prop) diff --git a/touch/syna/predump_sepolicy/property_contexts b/touch/syna/predump_sepolicy/property_contexts new file mode 100644 index 0000000..524cc8b --- /dev/null +++ b/touch/syna/predump_sepolicy/property_contexts @@ -0,0 +1 @@ +ro.vendor.touch.dump. u:object_r:vendor_touch_dump_path_prop:s0 diff --git a/touch/syna/predump_sepolicy/vendor_init.te b/touch/syna/predump_sepolicy/vendor_init.te new file mode 100644 index 0000000..74a6666 --- /dev/null +++ b/touch/syna/predump_sepolicy/vendor_init.te @@ -0,0 +1 @@ +set_prop(vendor_init, vendor_touch_dump_path_prop) diff --git a/touch/syna/predump_syna19.mk b/touch/syna/predump_syna19.mk new file mode 100644 index 0000000..e896fb7 --- /dev/null +++ b/touch/syna/predump_syna19.mk @@ -0,0 +1,5 @@ +PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/class/spi_master/spi19/spi19.0/synaptics_tcm.0/sysfs + +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/predump_sepolicy + +PRODUCT_PACKAGES += predump_syna.sh diff --git a/touch/syna/predump_syna20.mk b/touch/syna/predump_syna20.mk new file mode 100644 index 0000000..e331956 --- /dev/null +++ b/touch/syna/predump_syna20.mk @@ -0,0 +1,5 @@ +PRODUCT_VENDOR_PROPERTIES += ro.vendor.touch.dump.sys=/sys/devices/platform/111d0000.spi/spi_master/spi20/spi20.0/synaptics_tcm.0/sysfs + +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/touch/syna/predump_sepolicy + +PRODUCT_PACKAGES += predump_syna.sh