aboutsummaryrefslogtreecommitdiffstats
path: root/extendedcommands.c
diff options
context:
space:
mode:
Diffstat (limited to 'extendedcommands.c')
-rw-r--r--extendedcommands.c48
1 files changed, 38 insertions, 10 deletions
diff --git a/extendedcommands.c b/extendedcommands.c
index 6759335..fb64e75 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -1318,6 +1318,8 @@ void show_advanced_menu()
};
static char* list[] = { "reboot recovery",
+ "reboot to bootloader",
+ "power off",
"wipe dalvik cache",
"report error",
"key test",
@@ -1328,14 +1330,20 @@ void show_advanced_menu()
NULL
};
+ char bootloader_mode[PROPERTY_VALUE_MAX];
+ property_get("ro.bootloader.mode", bootloader_mode, "");
+ if (!strcmp(bootloader_mode, "download")) {
+ list[1] = "reboot to download mode";
+ }
+
if (!can_partition("/sdcard")) {
- list[5] = NULL;
+ list[7] = NULL;
}
if (!can_partition("/external_sd")) {
- list[6] = NULL;
+ list[8] = NULL;
}
if (!can_partition("/emmc")) {
- list[7] = NULL;
+ list[9] = NULL;
}
for (;;)
@@ -1346,9 +1354,29 @@ void show_advanced_menu()
switch (chosen_item)
{
case 0:
- android_reboot(ANDROID_RB_RESTART2, 0, "recovery");
+ {
+ ui_print("Rebooting recovery...\n");
+ reboot_main_system(ANDROID_RB_RESTART2, 0, "recovery");
break;
+ }
case 1:
+ {
+ if (!strcmp(bootloader_mode, "download")) {
+ ui_print("Rebooting to download mode...\n");
+ reboot_main_system(ANDROID_RB_RESTART2, 0, "download");
+ } else {
+ ui_print("Rebooting to bootloader...\n");
+ reboot_main_system(ANDROID_RB_RESTART2, 0, "bootloader");
+ }
+ break;
+ }
+ case 2:
+ {
+ ui_print("Shutting down...\n");
+ reboot_main_system(ANDROID_RB_POWEROFF, 0, 0);
+ break;
+ }
+ case 3:
if (0 != ensure_path_mounted("/data"))
break;
ensure_path_mounted("/sd-ext");
@@ -1361,10 +1389,10 @@ void show_advanced_menu()
}
ensure_path_unmounted("/data");
break;
- case 2:
+ case 4:
handle_failure(1);
break;
- case 3:
+ case 5:
{
ui_print("Outputting key codes.\n");
ui_print("Go back to end debugging.\n");
@@ -1379,16 +1407,16 @@ void show_advanced_menu()
while (action != GO_BACK);
break;
}
- case 4:
+ case 6:
ui_printlogtail(12);
break;
- case 5:
+ case 7:
partition_sdcard("/sdcard");
break;
- case 6:
+ case 8:
partition_sdcard("/external_sd");
break;
- case 7:
+ case 9:
partition_sdcard("/emmc");
break;
}