From bcd9ecbeeac31daabf4c64b68e14c9a201b3be80 Mon Sep 17 00:00:00 2001 From: Jackeagle Date: Tue, 21 May 2024 04:58:30 -0400 Subject: [PATCH 1/3] universal8890-common: Re-write usb init script - Fixed MTP Issue and SDCard Access from system Change-Id: I48592535ace7d55f7c1e293625d27cf8cb65e9a8 Signed-off-by: Jackeagle --- ramdisk/etc/init.samsungexynos8890.usb.rc | 210 ++-------------------- 1 file changed, 18 insertions(+), 192 deletions(-) diff --git a/ramdisk/etc/init.samsungexynos8890.usb.rc b/ramdisk/etc/init.samsungexynos8890.usb.rc index 43e4a0a..01c2f7d 100755 --- a/ramdisk/etc/init.samsungexynos8890.usb.rc +++ b/ramdisk/etc/init.samsungexynos8890.usb.rc @@ -1,36 +1,28 @@ on init write /sys/class/android_usb/android0/iSerial ${ro.serialno} - write /sys/class/android_usb/android0/f_rndis/manufacturer Samsung write /sys/class/android_usb/android0/f_rndis/vendorID 18d1 write /sys/class/android_usb/android0/f_rndis/wceis 1 on boot write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} + write /sys/class/android_usb/android0/f_rndis/manufacturer ${ro.product.manufacturer} write /sys/class/android_usb/android0/iProduct ${ro.product.model} - write /sys/class/android_usb/android0/iSerial ${ro.serialno} - write /sys/class/android_usb/android0/f_mass_storage/inquiry_string "Samsung" -on post-fs +on fs mkdir /dev/usb-ffs 0770 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 write /sys/class/android_usb/android0/f_ffs/aliases adb + setprop sys.usb.ffs.aio_compat 1 + on property:sys.usb.config=mtp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd + stop adb setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,adb @@ -42,54 +34,20 @@ on property:sys.usb.config=mtp,adb start adbd setprop sys.usb.state ${sys.usb.config} -on property:sys.usb.config=midi - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 686C - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=midi,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 686C - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=ncm - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/functions ncm - write /sys/class/android_usb/android0/bDeviceClass 2 - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=ncm,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/functions ncm,adb - write /sys/class/android_usb/android0/bDeviceClass 2 - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6863 + write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/bDeviceClass 224 write /sys/class/android_usb/android0/enable 1 + stop adb setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6864 + write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/bDeviceClass 224 write /sys/class/android_usb/android0/enable 1 @@ -99,176 +57,44 @@ on property:sys.usb.config=rndis,adb on property:sys.usb.config=ptp write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6865 + write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 + stop adb setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ptp,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6866 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=rndis,dm - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6862 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=rndis,acm,dm - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6862 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=rndis,acm,dm,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6862 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=acm,dm - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=acm,dm,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=mass_storage - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685B - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=mass_storage,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685e + write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} -on property:sys.usb.config=mass_storage,acm +on property:sys.usb.config=midi write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 685e + write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 + stop adb setprop sys.usb.state ${sys.usb.config} -# rndis,acm,diag and diag,acm,adb used for Hidden Menu - -on property:sys.usb.config=rndis,diag +on property:sys.usb.config=midi,adb write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6862 - write /sys/class/android_usb/android0/f_diag/clients diag_mdm - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=dm,acm,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/f_diag/clients diag_mdm - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=diag,acm - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 685d - write /sys/class/android_usb/android0/f_diag/clients diag_mdm - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - - -on property:sys.usb.config=rndis,acm,diag - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 6864 - write /sys/class/android_usb/android0/f_diag/clients diag_mdm - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=sec_charging - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions mtp - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=sec_charging,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions mtp,adb - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=vzw_charging - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions mtp - write /sys/class/android_usb/android0/enable 1 - setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=vzw_charging,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04E8 - write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions mtp,adb + write /sys/class/android_usb/android0/functions ${sys.usb.config} write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state ${sys.usb.config} - on property:sys.usb.config=mtp,conn_gadget +on property:sys.usb.config=charging write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 04e8 write /sys/class/android_usb/android0/idProduct 6860 write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/bDeviceClass 0 write /sys/class/android_usb/android0/enable 1 + stop adb setprop sys.usb.state ${sys.usb.config} - -on property:sys.usb.config=mtp,conn_gadget,adb - write /sys/class/android_usb/android0/enable 0 - write /sys/class/android_usb/android0/idVendor 04e8 - write /sys/class/android_usb/android0/idProduct 6860 - write /sys/class/android_usb/android0/functions ${sys.usb.config} - write /sys/class/android_usb/android0/bDeviceClass 0 - write /sys/class/android_usb/android0/enable 1 - start adbd - setprop sys.usb.state ${sys.usb.config} -- GitLab From 4359104dca664da24c81fa7c9b9f1402ccb5c530 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Mon, 18 Mar 2019 21:47:18 -0700 Subject: [PATCH 2/3] ramdisk: Disable nonblocking_ffs to avoid recent crashes with adbd Recent changes to adbd have enabled nonblocking_ffs by default. These have seeminly uncovered some bad memory corruption in the kernel ffs gadget driver on every kernel I've tried so far. Unfortunately I've not been able to diagnose what is going wrong, so for now, lets disable the nonblocking_ffs. We still need to root cause the issue as its a problem even with the mainline kernel on HiKey, so its likely a generic kernel issue. Change-Id: I7a0797cc9e8e5f263e533beea23642f768c0f017 Signed-off-by: John Stultz Signed-off-by: Jackeagle --- ramdisk/etc/init.samsungexynos8890.usb.rc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ramdisk/etc/init.samsungexynos8890.usb.rc b/ramdisk/etc/init.samsungexynos8890.usb.rc index 01c2f7d..28c2af0 100755 --- a/ramdisk/etc/init.samsungexynos8890.usb.rc +++ b/ramdisk/etc/init.samsungexynos8890.usb.rc @@ -15,6 +15,8 @@ on fs write /sys/class/android_usb/android0/f_ffs/aliases adb setprop sys.usb.ffs.aio_compat 1 + setprop persist.adb.nonblocking_ffs 0 + setprop ro.adb.nonblocking_ffs 0 on property:sys.usb.config=mtp write /sys/class/android_usb/android0/enable 0 -- GitLab From 6eaeb030ad601ff7afd61946ea2f656fa6af726f Mon Sep 17 00:00:00 2001 From: Jackeagle Date: Wed, 22 May 2024 08:41:55 -0400 Subject: [PATCH 3/3] ramdisk: Disable secure ADB on recovery - For some odd reason, when we boot into Lineage recovery, ADB shows an unauthorized state regardless of any actions taken. By disabling secure ADB, it starts to work fine. - Additionally, ADB sideload does not work as it still shows recovery instead of sideload. This is mostly due to the old FunctionFS implementation in this 3.18 kernel. Change-Id: I67b5840110b7b1875b2f94531bb4a4c74ba2df0d Signed-off-by: Jackeagle --- ramdisk/etc/init.samsungexynos8890.usb.rc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ramdisk/etc/init.samsungexynos8890.usb.rc b/ramdisk/etc/init.samsungexynos8890.usb.rc index 28c2af0..995c451 100755 --- a/ramdisk/etc/init.samsungexynos8890.usb.rc +++ b/ramdisk/etc/init.samsungexynos8890.usb.rc @@ -3,6 +3,8 @@ on init write /sys/class/android_usb/android0/f_rndis/vendorID 18d1 write /sys/class/android_usb/android0/f_rndis/wceis 1 + setprop ro.adb.secure.recovery 0 + on boot write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} write /sys/class/android_usb/android0/f_rndis/manufacturer ${ro.product.manufacturer} -- GitLab