From 84830ce015b83546f5bc25149e06647f2f7b5180 Mon Sep 17 00:00:00 2001 From: Matt Mower Date: Tue, 14 Feb 2017 20:36:16 -0600 Subject: 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 --- etc/init.recovery.usb.rc | 4 ++-- twrp.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/etc/init.recovery.usb.rc b/etc/init.recovery.usb.rc index 801973671..8ef20e0ec 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 88df452e7..f0e572cb0 100644 --- a/twrp.cpp +++ b/twrp.cpp @@ -315,6 +315,7 @@ int main(int argc, char **argv) { 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 @@ int main(int argc, char **argv) { DataManager::SetValue("tw_mtp_enabled", 0); PartitionManager.Disable_MTP(); } -#else - PartitionManager.Disable_MTP(); #endif #ifndef TW_OEM_BUILD -- cgit v1.2.3