summaryrefslogtreecommitdiffstats
path: root/twrp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'twrp.cpp')
-rw-r--r--twrp.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/twrp.cpp b/twrp.cpp
index 3d0a375a3..977fea245 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -303,26 +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");
- 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())
- 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