From 6f49e11d8adb08a8b420d679b3ab0cbfda6ffb12 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Wed, 3 Sep 2014 21:42:49 -0500 Subject: Prevent MTP enable on startup if crash detected Change-Id: Ie1388a8acadf714a29721dd90c7f9a8aa38a860d --- mtp/MtpStorage.cpp | 2 +- twrp.cpp | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp index c726bc651..8a0a4514f 100755 --- a/mtp/MtpStorage.cpp +++ b/mtp/MtpStorage.cpp @@ -652,7 +652,7 @@ int MtpStorage::renameObject(MtpObjectHandle handle, std::string newName) { } } } - // handle not foudn on this storage + // handle not found on this storage return -1; } diff --git a/twrp.cpp b/twrp.cpp index 469e08081..870a73296 100644 --- a/twrp.cpp +++ b/twrp.cpp @@ -288,22 +288,32 @@ int main(int argc, char **argv) { OpenRecoveryScript::Run_OpenRecoveryScript(); } +#ifdef TW_HAS_MTP // Enable MTP? - if (DataManager::GetIntValue(TW_IS_ENCRYPTED) != 0) { - if (DataManager::GetIntValue(TW_IS_DECRYPTED) != 0 && DataManager::GetIntValue("tw_mtp_enabled") == 1) { + char mtp_crash_check[PROPERTY_VALUE_MAX]; + property_get("mtp.crash_check", mtp_crash_check, "0"); + if (strcmp(mtp_crash_check, "0") == 0) { + property_set("mtp.crash_check", "1"); + if (DataManager::GetIntValue(TW_IS_ENCRYPTED) != 0) { + if (DataManager::GetIntValue(TW_IS_DECRYPTED) != 0 && DataManager::GetIntValue("tw_mtp_enabled") == 1) { + LOGINFO("Enabling MTP during startup\n"); + if (!PartitionManager.Enable_MTP()) + PartitionManager.Disable_MTP(); + else + gui_print("MTP Enabled\n"); + } + } else if (DataManager::GetIntValue("tw_mtp_enabled") == 1) { LOGINFO("Enabling MTP during startup\n"); if (!PartitionManager.Enable_MTP()) PartitionManager.Disable_MTP(); else gui_print("MTP Enabled\n"); } - } else if (DataManager::GetIntValue("tw_mtp_enabled") == 1) { - LOGINFO("Enabling MTP during startup\n"); - if (!PartitionManager.Enable_MTP()) - PartitionManager.Disable_MTP(); - else - gui_print("MTP Enabled\n"); + property_set("mtp.crash_check", "0"); + } else { + gui_print_color("warning", "MTP Crashed, not starting MTP on boot.\n"); } +#endif // Launch the main GUI gui_start(); -- cgit v1.2.3