add confirmations to anything that would change the system.
diff --git a/extendedcommands.c b/extendedcommands.c
index aa9cbc6..f09f24e 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -105,8 +105,11 @@
toggle_signature_check();
break;
case ITEM_APPLY_SDCARD:
- install_zip(SDCARD_PACKAGE_FILE);
+ {
+ if (confirm_selection("Confirm install?", "Yes - Install /sdcard/update.zip"))
+ install_zip(SDCARD_PACKAGE_FILE);
break;
+ }
case ITEM_CHOOSE_ZIP:
show_choose_zip_menu();
break;
@@ -316,7 +319,11 @@
char sdcard_package_file[1024];
strcpy(sdcard_package_file, "SDCARD:");
strcat(sdcard_package_file, file + strlen("/sdcard/"));
- install_zip(sdcard_package_file);
+ static char* confirm_install = "Confirm install?";
+ static char confirm[PATH_MAX];
+ sprintf(confirm, "Yes - Install %s", basename(file));
+ if (confirm_selection(confirm_install, confirm))
+ install_zip(sdcard_package_file);
}
// This was pulled from bionic: The default system command always looks
@@ -375,7 +382,9 @@
char* file = choose_file_menu("/sdcard/clockworkmod/backup/", NULL, headers);
if (file == NULL)
return;
- nandroid_restore(file, 1, 1, 1, 1, 1);
+
+ if (confirm_selection("Confirm restore?", "Yes - Restore"))
+ nandroid_restore(file, 1, 1, 1, 1, 1);
}
void show_mount_usb_storage_menu()
@@ -403,22 +412,23 @@
__system("echo 0 > /sys/devices/platform/usb_mass_storage/lun0/enable");
}
-int confirm_selection(char* title_headers[], char* confirm)
+int confirm_selection(const char* title, const char* confirm)
{
- char* items[] = { " No",
- " No",
- " No",
- " No",
- " No",
- " No",
- " No",
+ char* confirm_headers[] = { title, " THIS CAN NOT BE UNDONE.", "", NULL };
+ char* items[] = { "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
+ "No",
confirm, //" Yes -- wipe partition", // [7
- " No",
- " No",
- " No",
+ "No",
+ "No",
+ "No",
NULL };
- int chosen_item = get_menu_selection(title_headers, items, 0);
+ int chosen_item = get_menu_selection(confirm_headers, items, 0);
return chosen_item == 7;
}
@@ -486,11 +496,7 @@
{ "format sd-ext", "SDEXT:" }
};
- static char* confirm_format[] = { "Confirm format?",
- " THIS CAN NOT BE UNDONE.",
- "",
- NULL,
- };
+ static char* confirm_format = "Confirm format?";
static char* confirm = "Yes - Format";
for (;;)
@@ -695,23 +701,31 @@
NULL
};
+
+ static char* confirm_restore = "Confirm restore?";
+
int chosen_item = get_menu_selection(headers, list, 0);
switch (chosen_item)
{
case 0:
- nandroid_restore(file, 1, 0, 0, 0, 0);
+ if (confirm_selection(confirm_restore, "Yes - Restore boot"))
+ nandroid_restore(file, 1, 0, 0, 0, 0);
break;
case 1:
- nandroid_restore(file, 0, 1, 0, 0, 0);
+ if (confirm_selection(confirm_restore, "Yes - Restore system"))
+ nandroid_restore(file, 0, 1, 0, 0, 0);
break;
case 2:
- nandroid_restore(file, 0, 0, 1, 0, 0);
+ if (confirm_selection(confirm_restore, "Yes - Restore data"))
+ nandroid_restore(file, 0, 0, 1, 0, 0);
break;
case 3:
- nandroid_restore(file, 0, 0, 0, 1, 0);
+ if (confirm_selection(confirm_restore, "Yes - Restore cache"))
+ nandroid_restore(file, 0, 0, 0, 1, 0);
break;
case 4:
- nandroid_restore(file, 0, 0, 0, 0, 1);
+ if (confirm_selection(confirm_restore, "Yes - Restore sd-ext"))
+ nandroid_restore(file, 0, 0, 0, 0, 1);
break;
}
}
@@ -792,14 +806,20 @@
__reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, "recovery");
break;
case 1:
+ {
if (0 != ensure_root_path_mounted("DATA:"))
break;
- __system("rm -r /data/dalvik-cache");
+ if (confirm_selection( "Confirm wipe?", "Yes - Wipe Dalvik Cache"))
+ __system("rm -r /data/dalvik-cache");
ensure_root_path_unmounted("DATA:");
break;
+ }
case 2:
- wipe_battery_stats();
+ {
+ if (confirm_selection( "Confirm wipe?", "Yes - Wipe Battery Stats"))
+ wipe_battery_stats();
break;
+ }
case 3:
handle_failure(1);
break;
diff --git a/recovery.c b/recovery.c
index 34e02ab..b0123db 100644
--- a/recovery.c
+++ b/recovery.c
@@ -363,11 +363,11 @@
if (wrap_count == 3) {
wrap_count = 0;
if (ui_get_showing_back_button()) {
- ui_print("Back button disabled.\n");
+ ui_print("Back menu button disabled.\n");
ui_set_showing_back_button(0);
}
else {
- ui_print("Back button enabled.\n");
+ ui_print("Back menu button enabled.\n");
ui_set_showing_back_button(1);
}
}
@@ -451,27 +451,33 @@
break;
case ITEM_WIPE_CACHE:
- ui_print("\n-- Wiping cache...\n");
- erase_root("CACHE:");
- ui_print("Cache wipe complete.\n");
- if (!ui_text_visible()) return;
+ if (confirm_selection("Confirm wipe?", "Yes - Wipe Cache"))
+ {
+ ui_print("\n-- Wiping cache...\n");
+ erase_root("CACHE:");
+ ui_print("Cache wipe complete.\n");
+ if (!ui_text_visible()) return;
+ }
break;
case ITEM_APPLY_SDCARD:
- ui_print("\n-- Install from sdcard...\n");
- set_sdcard_update_bootloader_message();
- int status = install_package(SDCARD_PACKAGE_FILE);
- if (status != INSTALL_SUCCESS) {
- ui_set_background(BACKGROUND_ICON_ERROR);
- ui_print("Installation aborted.\n");
- } else if (!ui_text_visible()) {
- return; // reboot if logs aren't visible
- } else {
- if (firmware_update_pending()) {
- ui_print("\nReboot via menu to complete\n"
- "installation.\n");
+ if (confirm_selection("Confirm install?", "Yes - Install /sdcard/update.zip"))
+ {
+ ui_print("\n-- Install from sdcard...\n");
+ set_sdcard_update_bootloader_message();
+ int status = install_package(SDCARD_PACKAGE_FILE);
+ if (status != INSTALL_SUCCESS) {
+ ui_set_background(BACKGROUND_ICON_ERROR);
+ ui_print("Installation aborted.\n");
+ } else if (!ui_text_visible()) {
+ return; // reboot if logs aren't visible
} else {
- ui_print("\nInstall from sdcard complete.\n");
+ if (firmware_update_pending()) {
+ ui_print("\nReboot via menu to complete\n"
+ "installation.\n");
+ } else {
+ ui_print("\nInstall from sdcard complete.\n");
+ }
}
}
break;