summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--partitionmanager.cpp4
-rw-r--r--twrp.cpp22
2 files changed, 12 insertions, 14 deletions
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index ea8693f52..908730e57 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -2081,8 +2081,6 @@ bool TWPartitionManager::Enable_MTP(void) {
gui_err("mtp_already_enabled=MTP already enabled");
return true;
}
- //Launch MTP Responder
- LOGINFO("Starting MTP\n");
int mtppipe[2];
@@ -2105,7 +2103,7 @@ bool TWPartitionManager::Enable_MTP(void) {
TWFunc::write_file("/sys/class/android_usb/android0/idProduct", productstr);
property_set("sys.usb.config", "mtp,adb");
}
- /* To enable MTP debug, use the twrp command line feature to
+ /* To enable MTP debug, use the twrp command line feature:
* twrp set tw_mtp_debug 1
*/
twrpMtp *mtp = new twrpMtp(DataManager::GetIntValue("tw_mtp_debug"));
diff --git a/twrp.cpp b/twrp.cpp
index 9ea6ba62e..977fea245 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -303,25 +303,25 @@ int main(int argc, char **argv) {
}
#ifdef TW_HAS_MTP
- // Enable MTP?
char mtp_crash_check[PROPERTY_VALUE_MAX];
property_get("mtp.crash_check", mtp_crash_check, "0");
- if (strcmp(mtp_crash_check, "0") == 0) {
+ if (DataManager::GetIntValue("tw_mtp_enabled")
+ && !strcmp(mtp_crash_check, "0") && !crash_counter
+ && (!DataManager::GetIntValue(TW_IS_ENCRYPTED) || DataManager::GetIntValue(TW_IS_DECRYPTED))) {
property_set("mtp.crash_check", "1");
- 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())
- PartitionManager.Disable_MTP();
- else
- gui_msg("mtp_enabled=MTP Enabled");
- } else {
+ LOGINFO("Starting MTP\n");
+ if (!PartitionManager.Enable_MTP())
PartitionManager.Disable_MTP();
- }
+ else
+ gui_msg("mtp_enabled=MTP Enabled");
property_set("mtp.crash_check", "0");
- } else {
+ } else if (strcmp(mtp_crash_check, "0")) {
gui_warn("mtp_crash=MTP Crashed, not starting MTP on boot.");
DataManager::SetValue("tw_mtp_enabled", 0);
PartitionManager.Disable_MTP();
+ } else if (crash_counter == 1) {
+ LOGINFO("TWRP crashed; disabling MTP as a precaution.\n");
+ PartitionManager.Disable_MTP();
}
#endif