diff options
-rw-r--r-- | openrecoveryscript.cpp | 1 | ||||
-rw-r--r-- | twrp.cpp | 18 |
2 files changed, 13 insertions, 6 deletions
diff --git a/openrecoveryscript.cpp b/openrecoveryscript.cpp index 92cac0791..d7e4a2332 100644 --- a/openrecoveryscript.cpp +++ b/openrecoveryscript.cpp @@ -141,7 +141,6 @@ int OpenRecoveryScript::run_script_file(void) { if (strcmp(command, "install") == 0) { // Install Zip DataManager::SetValue("tw_action_text2", "Installing Zip"); - PartitionManager.Mount_All_Storage(); ret_val = Install_Command(value); install_cmd = -1; } else if (strcmp(command, "wipe") == 0) { @@ -169,6 +169,7 @@ int main(int argc, char **argv) { PartitionManager.Mount_By_Path("/cache", false); bool Shutdown = false; + bool SkipDecryption = false; string Send_Intent = ""; { TWPartition* misc = PartitionManager.Find_Partition_By_Path("/misc"); @@ -203,6 +204,9 @@ int main(int argc, char **argv) { string ORSCommand = "install "; ORSCommand.append(ptr); + // If we have a map of blocks we don't need to mount data. + SkipDecryption = *ptr == '@'; + if (!OpenRecoveryScript::Insert_ORS_Command(ORSCommand)) break; } else @@ -271,12 +275,16 @@ int main(int argc, char **argv) { TWFunc::Update_Log_File(); // Offer to decrypt if the device is encrypted if (DataManager::GetIntValue(TW_IS_ENCRYPTED) != 0) { - LOGINFO("Is encrypted, do decrypt page first\n"); - if (gui_startPage("decrypt", 1, 1) != 0) { - LOGERR("Failed to start decrypt GUI page.\n"); + if (SkipDecryption) { + LOGINFO("Skipping decryption\n"); } else { - // Check for and load custom theme if present - gui_loadCustomResources(); + LOGINFO("Is encrypted, do decrypt page first\n"); + if (gui_startPage("decrypt", 1, 1) != 0) { + LOGERR("Failed to start decrypt GUI page.\n"); + } else { + // Check for and load custom theme if present + gui_loadCustomResources(); + } } } else if (datamedia) { if (tw_get_default_metadata(DataManager::GetSettingsStoragePath().c_str()) != 0) { |