Update backup and restore code, adb sideload

Fixed a problem with using make_ext4fs by making its lib
a dynamic lib.
Added ADB sideload zip install feature - no way to cancel it yet.
Improve backup and restore code.
This commit is contained in:
Dees_Troy
2012-09-17 16:00:01 -04:00
parent b9d88acdc0
commit 43d8b00770
10 changed files with 773 additions and 128 deletions
+38 -5
View File
@@ -21,6 +21,9 @@
#include "../partitions.hpp"
#include "../twrp-functions.hpp"
#include "../ui.h"
#include "../adb_install.h"
extern "C" {
#include "../common.h"
#include "../roots.h"
@@ -31,6 +34,8 @@ extern "C" {
#include "../variables.h"
#include "../twinstall.h"
#include "../minadbd/adb.h"
int TWinstall_zip(const char* path, int* wipe_cache);
void wipe_dalvik_cache(void);
int check_backup_name(int show_error);
@@ -55,6 +60,8 @@ int gui_start();
#include "rapidxml.hpp"
#include "objects.hpp"
extern RecoveryUI* ui;
void curtainClose(void);
GUIAction::GUIAction(xml_node<>* node)
@@ -733,6 +740,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (function == "nandroid")
{
operation_start("Nandroid");
int ret = 0;
if (simulate) {
DataManager::SetValue("tw_partition", "Simulation");
@@ -741,21 +749,27 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (arg == "backup") {
string Backup_Name;
DataManager::GetValue(TW_BACKUP_NAME, Backup_Name);
if (Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || check_backup_name(1))
PartitionManager.Run_Backup(Backup_Name);
else
if (Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || check_backup_name(1) == 0)
ret = PartitionManager.Run_Backup();
else {
operation_end(1, simulate);
return -1;
}
DataManager::SetValue(TW_BACKUP_NAME, "(Current Date)");
} else if (arg == "restore") {
string Restore_Name;
DataManager::GetValue("tw_restore", Restore_Name);
PartitionManager.Run_Restore(Restore_Name);
ret = PartitionManager.Run_Restore(Restore_Name);
} else {
operation_end(1, simulate);
return -1;
}
}
operation_end(0, simulate);
if (ret == false)
ret = 1; // 1 for failure
else
ret = 0; // 0 for success
operation_end(ret, simulate);
return 0;
}
if (function == "fixpermissions")
@@ -1048,6 +1062,25 @@ LOGE("TODO: Implement ORS support\n");
operation_end(op_status, simulate);
return 0;
}
if (function == "adbsideload")
{
int ret = 0;
operation_start("Sideload");
if (simulate) {
simulate_progress_bar();
} else {
int wipe_cache = 0;
ui_print("Starting ADB sideload feature...\n");
__system("touch /tmp/update.zip");
ret = apply_from_adb(ui, &wipe_cache, "/tmp/last_install");
LOGI("Result was: %i\n", ret);
if (ret != 0)
ret = 1;
}
operation_end(ret, simulate);
return 0;
}
}
else
{
+15
View File
@@ -2540,6 +2540,21 @@
<action function="page">terminalfolder</action>
</object>
<object type="button">
<placement x="%col1_x%" y="%row4_y%" />
<font resource="font" color="%button_text_color%" />
<text>ADB Sideload</text>
<image resource="main_button" />
<actions>
<action function="set">tw_action=adbsideload</action>
<action function="set">tw_action_text1=ADB Sideload</action>
<action function="set">tw_action_text2=Usage: adb sideload filename.zip</action>
<action function="set">tw_complete_text1=ADB Sideload Complete</action>
<action function="set">tw_slider_text=Swipe to Wipe</action>
<action function="page">action_page</action>
</actions>
</object>
<object type="button">
<condition var1="tw_show_dumlock" var2="1" />
<placement x="%col2_x%" y="%row4_y%" />