allow selective restore
diff --git a/extendedcommands.c b/extendedcommands.c
index 5b3f7d4..f3ddd00 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -347,7 +347,7 @@
char* file = choose_file_menu("/sdcard/clockworkmod/backup/", NULL, headers);
if (file == NULL)
return;
- nandroid_restore(file);
+ nandroid_restore(file, 1, 1, 1, 1);
}
void show_mount_usb_storage_menu()
@@ -568,6 +568,56 @@
return run_script(argv[1], 0);
}
+void show_nandroid_advanced_restore_menu()
+{
+ if (ensure_root_path_mounted("SDCARD:") != 0) {
+ LOGE ("Can't mount /sdcard\n");
+ return;
+ }
+
+ static char* advancedheaders[] = { "Choose an image to restore",
+ "",
+ "Choose an image to restore",
+ "first. The next menu will",
+ "you more options.",
+ "",
+ NULL
+ };
+
+ char* file = choose_file_menu("/sdcard/clockworkmod/backup/", NULL, advancedheaders);
+ if (file == NULL)
+ return;
+
+ static char* headers[] = { "Nandroid Advanced Restore",
+ "",
+ NULL
+ };
+
+ static char* list[] = { "Restore boot",
+ "Restore system",
+ "Restore data",
+ "Restore cache",
+ NULL
+ };
+
+ int chosen_item = get_menu_selection(headers, list, 0);
+ switch (chosen_item)
+ {
+ case 0:
+ nandroid_restore(file, 1, 0, 0, 0);
+ break;
+ case 1:
+ nandroid_restore(file, 0, 1, 0, 0);
+ break;
+ case 2:
+ nandroid_restore(file, 0, 0, 1, 0);
+ break;
+ case 3:
+ nandroid_restore(file, 0, 0, 0, 1);
+ break;
+ }
+}
+
void show_nandroid_menu()
{
static char* headers[] = { "Nandroid",
@@ -577,6 +627,7 @@
static char* list[] = { "Backup",
"Restore",
+ "Advanced Restore",
NULL
};
@@ -595,6 +646,9 @@
case 1:
show_nandroid_restore_menu();
break;
+ case 2:
+ show_nandroid_advanced_restore_menu();
+ break;
}
}