add confirmations to anything that would change the system.
This commit is contained in:
parent
ecd32fa2e8
commit
d63eaef179
@ -105,8 +105,11 @@ void show_install_update_menu()
|
||||
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 @@ void show_choose_zip_menu()
|
||||
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 @@ void show_nandroid_restore_menu()
|
||||
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 @@ void show_mount_usb_storage_menu()
|
||||
__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 @@ void show_partition_menu()
|
||||
{ "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 @@ void show_nandroid_advanced_restore_menu()
|
||||
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 @@ void show_advanced_menu()
|
||||
__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;
|
||||
|
44
recovery.c
44
recovery.c
@ -363,11 +363,11 @@ get_menu_selection(char** headers, char** items, int menu_only) {
|
||||
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 @@ prompt_and_wait()
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user