From 2673cec07a4740f86438b50cfe1b70b258a9a8c8 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Tue, 2 Apr 2013 20:22:16 +0000 Subject: Move all AOSP code out of recovery binary Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0 --- openrecoveryscript.cpp | 159 +++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 78 deletions(-) (limited to 'openrecoveryscript.cpp') diff --git a/openrecoveryscript.cpp b/openrecoveryscript.cpp index 5a23c1d4a..a842d3370 100644 --- a/openrecoveryscript.cpp +++ b/openrecoveryscript.cpp @@ -35,7 +35,7 @@ #include "twrp-functions.hpp" #include "partitions.hpp" -#include "common.h" +#include "twcommon.h" #include "openrecoveryscript.hpp" #include "variables.h" #include "adb_install.h" @@ -46,16 +46,15 @@ extern "C" { int TWinstall_zip(const char* path, int* wipe_cache); } -extern RecoveryUI* ui; #define SCRIPT_COMMAND_SIZE 512 int OpenRecoveryScript::check_for_script_file(void) { if (!PartitionManager.Mount_By_Path(SCRIPT_FILE_CACHE, false)) { - LOGE("Unable to mount /cache for OpenRecoveryScript support.\n"); + LOGERR("Unable to mount /cache for OpenRecoveryScript support.\n"); return 0; } if (TWFunc::Path_Exists(SCRIPT_FILE_CACHE)) { - LOGI("Script file found: '%s'\n", SCRIPT_FILE_CACHE); + LOGINFO("Script file found: '%s'\n", SCRIPT_FILE_CACHE); // Copy script file to /tmp TWFunc::copy_file(SCRIPT_FILE_CACHE, SCRIPT_FILE_TMP, 0755); // Delete the file from /cache @@ -81,7 +80,7 @@ int OpenRecoveryScript::run_script_file(void) { line_len = strlen(script_line); if (line_len < 2) continue; // there's a blank line or line is too short to contain a command - //ui_print("script line: '%s'\n", script_line); + //gui_print("script line: '%s'\n", script_line); for (i=0; i 0) { - ui_print("%s\n", "Special1 -- No Longer Supported..."); + gui_print("%s\n", "Special1 -- No Longer Supported..."); } else if (value2[i] == '2' && DataManager::GetIntValue(TW_RESTORE_SP2_VAR) > 0) { - ui_print("%s\n", "Special2 -- No Longer Supported..."); + gui_print("%s\n", "Special2 -- No Longer Supported..."); } else if (value2[i] == '3' && DataManager::GetIntValue(TW_RESTORE_SP3_VAR) > 0) { - ui_print("%s\n", "Special3 -- No Longer Supported..."); + gui_print("%s\n", "Special3 -- No Longer Supported..."); } else if ((value2[i] == 'B' || value2[i] == 'b') && Partition_List.find("/boot;") != string::npos) { Restore_List += "/boot;"; - ui_print("Boot\n"); + gui_print("Boot\n"); } else if ((value2[i] == 'A' || value2[i] == 'a') && Partition_List.find("/and-sec;") != string::npos) { Restore_List += "/and-sec;"; - ui_print("Android Secure\n"); + gui_print("Android Secure\n"); } else if ((value2[i] == 'E' || value2[i] == 'e') && Partition_List.find("/sd-ext;") != string::npos) { Restore_List += "/sd-ext;"; - ui_print("SD-Ext\n"); + gui_print("SD-Ext\n"); } else if (value2[i] == 'M' || value2[i] == 'm') { DataManager::SetValue(TW_SKIP_MD5_CHECK_VAR, 1); - ui_print("MD5 check skip is on\n"); + gui_print("MD5 check skip is on\n"); } } @@ -264,7 +263,7 @@ int OpenRecoveryScript::run_script_file(void) { if (!PartitionManager.Run_Restore(folder_path)) ret_val = 1; else - ui_print("Restore complete!\n"); + gui_print("Restore complete!\n"); } else if (strcmp(command, "mount") == 0) { // Mount DataManager::SetValue("tw_action_text2", "Mounting"); @@ -274,7 +273,7 @@ int OpenRecoveryScript::run_script_file(void) { } else strcpy(mount, value); if (PartitionManager.Mount_By_Path(mount, true)) - ui_print("Mounted '%s'\n", mount); + gui_print("Mounted '%s'\n", mount); } else if (strcmp(command, "unmount") == 0 || strcmp(command, "umount") == 0) { // Unmount DataManager::SetValue("tw_action_text2", "Unmounting"); @@ -284,21 +283,21 @@ int OpenRecoveryScript::run_script_file(void) { } else strcpy(mount, value); if (PartitionManager.UnMount_By_Path(mount, true)) - ui_print("Unmounted '%s'\n", mount); + gui_print("Unmounted '%s'\n", mount); } else if (strcmp(command, "set") == 0) { // Set value tok = strtok(value, " "); strcpy(value1, tok); tok = strtok(NULL, " "); strcpy(value2, tok); - ui_print("Setting '%s' to '%s'\n", value1, value2); + gui_print("Setting '%s' to '%s'\n", value1, value2); DataManager::SetValue(value1, value2); } else if (strcmp(command, "mkdir") == 0) { // Make directory (recursive) DataManager::SetValue("tw_action_text2", "Making Directory"); - ui_print("Making directory (recursive): '%s'\n", value); + gui_print("Making directory (recursive): '%s'\n", value); if (TWFunc::Recursive_Mkdir(value)) { - LOGE("Unable to create folder: '%s'\n", value); + LOGERR("Unable to create folder: '%s'\n", value); ret_val = 1; } } else if (strcmp(command, "reboot") == 0) { @@ -309,10 +308,10 @@ int OpenRecoveryScript::run_script_file(void) { string status; TWFunc::Exec_Cmd(value, status); } else { - LOGE("No value given for cmd\n"); + LOGERR("No value given for cmd\n"); } } else if (strcmp(command, "print") == 0) { - ui_print("%s\n", value); + gui_print("%s\n", value); } else if (strcmp(command, "sideload") == 0) { // ADB Sideload DataManager::SetValue("tw_action_text2", "ADB Sideload"); @@ -328,32 +327,36 @@ int OpenRecoveryScript::run_script_file(void) { if (TWFunc::Path_Exists(Sideload_File)) { unlink(Sideload_File.c_str()); } - ui_print("Starting ADB sideload feature...\n"); + gui_print("Starting ADB sideload feature...\n"); DataManager::SetValue("tw_has_cancel", 1); DataManager::SetValue("tw_cancel_action", "adbsideloadcancel"); - ret_val = apply_from_adb(ui, &wipe_cache, Sideload_File.c_str()); + ret_val = apply_from_adb(Sideload_File.c_str()); DataManager::SetValue("tw_has_cancel", 0); if (ret_val != 0) ret_val = 1; // failure - else if (wipe_cache) - PartitionManager.Wipe_By_Path("/cache"); + else if (TWinstall_zip(Sideload_File.c_str(), &wipe_cache) == 0) { + if (wipe_cache) + PartitionManager.Wipe_By_Path("/cache"); + } else { + ret_val = 1; // failure + } sideload = 1; // Causes device to go to the home screen afterwards - ui_print("Sideload finished.\n"); + gui_print("Sideload finished.\n"); } } else { - LOGE("Unrecognized script command: '%s'\n", command); + LOGERR("Unrecognized script command: '%s'\n", command); ret_val = 1; } } fclose(fp); - ui_print("Done processing script file\n"); + gui_print("Done processing script file\n"); } else { - LOGE("Error opening script file '%s'\n", SCRIPT_FILE_TMP); + LOGERR("Error opening script file '%s'\n", SCRIPT_FILE_TMP); return 1; } if (install_cmd && DataManager::GetIntValue(TW_HAS_INJECTTWRP) == 1 && DataManager::GetIntValue(TW_INJECT_AFTER_ZIP) == 1) { string status; - ui_print("Injecting TWRP into boot image...\n"); + gui_print("Injecting TWRP into boot image...\n"); TWPartition* Boot = PartitionManager.Find_Partition_By_Path("/boot"); if (Boot == NULL || Boot->Current_File_System != "emmc") TWFunc::Exec_Cmd("injecttwrp --dump /tmp/backup_recovery_ramdisk.img /tmp/injected_boot.img --flash", status); @@ -361,7 +364,7 @@ int OpenRecoveryScript::run_script_file(void) { string injectcmd = "injecttwrp --dump /tmp/backup_recovery_ramdisk.img /tmp/injected_boot.img --flash bd=" + Boot->Actual_Block_Device; TWFunc::Exec_Cmd(injectcmd.c_str(), status); } - ui_print("TWRP injection complete.\n"); + gui_print("TWRP injection complete.\n"); } if (sideload) ret_val = 1; // Forces booting to the home page after sideload @@ -373,12 +376,12 @@ int OpenRecoveryScript::Insert_ORS_Command(string Command) { if (ORSfile.is_open()) { //if (Command.substr(Command.size() - 1, 1) != "\n") // Command += "\n"; - LOGI("Inserting '%s'\n", Command.c_str()); + LOGINFO("Inserting '%s'\n", Command.c_str()); ORSfile << Command.c_str(); ORSfile.close(); return 1; } - LOGE("Unable to append '%s' to '%s'\n", Command.c_str(), SCRIPT_FILE_TMP); + LOGERR("Unable to append '%s' to '%s'\n", Command.c_str(), SCRIPT_FILE_TMP); return 0; } @@ -394,22 +397,22 @@ int OpenRecoveryScript::Install_Command(string Zip) { Full_Path = DataManager::GetCurrentStoragePath(); Full_Path += "/" + Zip; - LOGI("Full zip path: '%s'\n", Full_Path.c_str()); + LOGINFO("Full zip path: '%s'\n", Full_Path.c_str()); if (!TWFunc::Path_Exists(Full_Path)) { ret_string = Locate_Zip_File(Full_Path, DataManager::GetCurrentStoragePath()); if (!ret_string.empty()) { Full_Path = ret_string; } else if (DataManager::GetIntValue(TW_HAS_DUAL_STORAGE)) { if (DataManager::GetIntValue(TW_USE_EXTERNAL_STORAGE)) { - LOGI("Zip file not found on external storage, trying internal...\n"); + LOGINFO("Zip file not found on external storage, trying internal...\n"); DataManager::SetValue(TW_USE_EXTERNAL_STORAGE, 0); } else { - LOGI("Zip file not found on internal storage, trying external...\n"); + LOGINFO("Zip file not found on internal storage, trying external...\n"); DataManager::SetValue(TW_USE_EXTERNAL_STORAGE, 1); } Full_Path = DataManager::GetCurrentStoragePath(); Full_Path += "/" + Zip; - LOGI("Full zip path: '%s'\n", Full_Path.c_str()); + LOGINFO("Full zip path: '%s'\n", Full_Path.c_str()); ret_string = Locate_Zip_File(Full_Path, DataManager::GetCurrentStoragePath()); if (!ret_string.empty()) Full_Path = ret_string; @@ -427,14 +430,14 @@ int OpenRecoveryScript::Install_Command(string Zip) { if (!TWFunc::Path_Exists(Zip)) { // zip file doesn't exist - ui_print("Unable to locate zip file '%s'.\n", Zip.c_str()); + gui_print("Unable to locate zip file '%s'.\n", Zip.c_str()); ret_val = 1; } else { - ui_print("Installing zip file '%s'\n", Zip.c_str()); + gui_print("Installing zip file '%s'\n", Zip.c_str()); ret_val = TWinstall_zip(Zip.c_str(), &wipe_cache); } if (ret_val != 0) { - LOGE("Error installing zip file '%s'\n", Zip.c_str()); + LOGERR("Error installing zip file '%s'\n", Zip.c_str()); ret_val = 1; } else if (wipe_cache) PartitionManager.Wipe_By_Path("/cache"); @@ -474,50 +477,50 @@ int OpenRecoveryScript::Backup_Command(string Options) { DataManager::SetValue(TW_USE_COMPRESSION_VAR, 0); DataManager::SetValue(TW_SKIP_MD5_GENERATE_VAR, 0); - ui_print("Setting backup options:\n"); + gui_print("Setting backup options:\n"); line_len = Options.size(); for (i=0; i