aboutsummaryrefslogtreecommitdiffstats
path: root/recovery.c
diff options
context:
space:
mode:
authorKalimochoAz <calimochoazucarado@gmail.com>2011-01-10 06:14:21 +0100
committerKalimochoAz <calimochoazucarado@gmail.com>2011-01-10 06:14:21 +0100
commitd646a6fa1da35d8842c2a2b7768671bf782eb8a7 (patch)
tree29577681023519e780023aad1695ebca290aaa2e /recovery.c
parent53c9bd8b10b26a91744af0b68fa782093b7fba79 (diff)
downloadbootable_recovery-d646a6fa1da35d8842c2a2b7768671bf782eb8a7.zip
bootable_recovery-d646a6fa1da35d8842c2a2b7768671bf782eb8a7.tar.gz
bootable_recovery-d646a6fa1da35d8842c2a2b7768671bf782eb8a7.tar.bz2
Added Power off capability
Change-Id: I545f8b73e84c5083d2d17b98f8edcdd612c0f78e
Diffstat (limited to 'recovery.c')
-rw-r--r--recovery.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/recovery.c b/recovery.c
index bb4c1be..963c724 100644
--- a/recovery.c
+++ b/recovery.c
@@ -61,6 +61,7 @@ static const char *LOG_FILE = "/cache/recovery/log";
static const char *LAST_LOG_FILE = "/cache/recovery/last_log";
static const char *SDCARD_ROOT = "/sdcard";
static int allow_display_toggle = 1;
+static int poweroff = 0;
static const char *SDCARD_PACKAGE_FILE = "/sdcard/update.zip";
static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log";
static const char *SIDELOAD_TEMP_DIR = "/tmp/sideload";
@@ -707,6 +708,7 @@ prompt_and_wait() {
switch (chosen_item) {
case ITEM_REBOOT:
+ poweroff=0;
return;
case ITEM_WIPE_DATA:
@@ -751,6 +753,9 @@ prompt_and_wait() {
case ITEM_ADVANCED:
show_advanced_menu();
break;
+ case ITEM_POWEROFF:
+ poweroff=1;
+ return;
}
}
}
@@ -782,6 +787,9 @@ main(int argc, char **argv) {
return nandroid_main(argc, argv);
if (strstr(argv[0], "reboot"))
return reboot_main(argc, argv);
+ if (strstr(argv[0], "poweroff")){
+ return reboot_main(argc, argv);
+ }
if (strstr(argv[0], "setprop"))
return setprop_main(argc, argv);
return busybox_driver(argc, argv);
@@ -939,9 +947,12 @@ main(int argc, char **argv) {
// Otherwise, get ready to boot the main system...
finish_recovery(send_intent);
- ui_print("Rebooting...\n");
+ if(!poweroff)
+ ui_print("Rebooting...\n");
+ else
+ ui_print("Shutting down...\n");
sync();
- reboot(RB_AUTOBOOT);
+ reboot((!poweroff) ? RB_AUTOBOOT : RB_POWER_OFF);
return EXIT_SUCCESS;
}