Added Power off capability

Change-Id: I545f8b73e84c5083d2d17b98f8edcdd612c0f78e
diff --git a/default_recovery_ui.c b/default_recovery_ui.c
index 9c192a2..51fd330 100644
--- a/default_recovery_ui.c
+++ b/default_recovery_ui.c
@@ -30,6 +30,7 @@
                        "backup and restore",
                        "mounts and storage",
                        "advanced",
+                       "power off",
                        NULL };
 
 int device_recovery_start() {
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 *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 @@
 
         switch (chosen_item) {
             case ITEM_REBOOT:
+                poweroff=0;
                 return;
 
             case ITEM_WIPE_DATA:
@@ -751,6 +753,9 @@
             case ITEM_ADVANCED:
                 show_advanced_menu();
                 break;
+            case ITEM_POWEROFF:
+                poweroff=1;
+                return;
         }
     }
 }
@@ -782,6 +787,9 @@
             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 @@
 
     // 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;
 }
 
diff --git a/recovery_ui.h b/recovery_ui.h
index f34365f..50af45b 100644
--- a/recovery_ui.h
+++ b/recovery_ui.h
@@ -74,6 +74,7 @@
 #define ITEM_NANDROID        5
 #define ITEM_PARTITION       6
 #define ITEM_ADVANCED        7
+#define ITEM_POWEROFF        8          
 
 // Header text to display above the main menu.
 extern char* MENU_HEADERS[];