Only change USB mode to mtp when ready for MTP
Commit 'Do not toggle USB ID during MTP startup if not needed' changed
the default USB mode to 'mtp,adb'. Depending on the device, this can
result in an unfortunate side effect of crashing an ORS sideload
midway through the process (it's not clear to me whether the kernel or
the connected computer is responsible). Only put USB into mtp mode
when MTP storage is starting-up.
The hack to change the USB mode to adb when a user compiles TWRP
without MTP support is no longer necessary now that 'adb' is the
startup mode.
Change-Id: I8ed13d6ab8e85621533997b8c37ef7ebec0fcf85
diff --git a/etc/init.recovery.usb.rc b/etc/init.recovery.usb.rc
index 8019736..8ef20e0 100644
--- a/etc/init.recovery.usb.rc
+++ b/etc/init.recovery.usb.rc
@@ -1,9 +1,9 @@
on fs
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18D1
- write /sys/class/android_usb/android0/idProduct 4EE2
+ write /sys/class/android_usb/android0/idProduct D001
write /sys/class/android_usb/android0/f_ffs/aliases adb
- write /sys/class/android_usb/android0/functions mtp,adb
+ write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
diff --git a/twrp.cpp b/twrp.cpp
index 88df452..f0e572c 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -315,6 +315,7 @@
property_get("mtp.crash_check", mtp_crash_check, "0");
if (strcmp(mtp_crash_check, "0") == 0) {
property_set("mtp.crash_check", "1");
+ property_set("sys.usb.config", "adb"); // At first boot, should be adb-only
if (DataManager::GetIntValue("tw_mtp_enabled") == 1 && ((DataManager::GetIntValue(TW_IS_ENCRYPTED) != 0 && DataManager::GetIntValue(TW_IS_DECRYPTED) != 0) || DataManager::GetIntValue(TW_IS_ENCRYPTED) == 0)) {
LOGINFO("Enabling MTP during startup\n");
if (!PartitionManager.Enable_MTP())
@@ -330,8 +331,6 @@
DataManager::SetValue("tw_mtp_enabled", 0);
PartitionManager.Disable_MTP();
}
-#else
- PartitionManager.Disable_MTP();
#endif
#ifndef TW_OEM_BUILD