summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-03-23 16:03:23 +0100
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-03-23 16:03:24 +0100
commite944944fa58f66dad5483b6ee1ea9a2c0f9bedd2 (patch)
tree0fd31cd73e5dc9ae3160612e58b5570a2b884b67
parentMerge "Remove unused libutils references." (diff)
parentAdd "Apply update from sdcard" to default recovery image. (diff)
downloadandroid_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar.gz
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar.bz2
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar.lz
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar.xz
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.tar.zst
android_bootable_recovery-e944944fa58f66dad5483b6ee1ea9a2c0f9bedd2.zip
Diffstat (limited to '')
-rw-r--r--README.md14
-rw-r--r--default_device.cpp40
-rw-r--r--recovery.cpp10
3 files changed, 44 insertions, 20 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..c0833f2d0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,14 @@
+The Recovery Image
+==================
+
+Quick turn-around testing
+-------------------------
+
+ mm -j
+ m ramdisk-nodeps
+ m recoveryimage-nodeps
+ adb reboot bootloader
+
+ # To boot into the new recovery image
+ # without flashing the recovery partition:
+ fastboot boot $ANDROID_PRODUCT_OUT/recovery.img
diff --git a/default_device.cpp b/default_device.cpp
index 97806ac58..ed601f6c6 100644
--- a/default_device.cpp
+++ b/default_device.cpp
@@ -20,19 +20,24 @@
#include "device.h"
#include "screen_ui.h"
-static const char* HEADERS[] = { "Volume up/down to move highlight;",
- "enter button to select.",
- "",
- NULL };
+static const char* HEADERS[] = {
+ "Volume up/down to move highlight.",
+ "Power button to select.",
+ "",
+ NULL
+};
-static const char* ITEMS[] = {"reboot system now",
- "apply update from ADB",
- "wipe data/factory reset",
- "wipe cache partition",
- "reboot to bootloader",
- "power down",
- "view recovery logs",
- NULL };
+static const char* ITEMS[] = {
+ "Reboot system now",
+ "Reboot to bootloader",
+ "Apply update from ADB",
+ "Apply update from SD card",
+ "Wipe data/factory reset",
+ "Wipe cache partition",
+ "View recovery logs",
+ "Power off",
+ NULL
+};
class DefaultDevice : public Device {
public:
@@ -65,12 +70,13 @@ class DefaultDevice : public Device {
BuiltinAction InvokeMenuItem(int menu_position) {
switch (menu_position) {
case 0: return REBOOT;
- case 1: return APPLY_ADB_SIDELOAD;
- case 2: return WIPE_DATA;
- case 3: return WIPE_CACHE;
- case 4: return REBOOT_BOOTLOADER;
- case 5: return SHUTDOWN;
+ case 1: return REBOOT_BOOTLOADER;
+ case 2: return APPLY_ADB_SIDELOAD;
+ case 3: return APPLY_EXT;
+ case 4: return WIPE_DATA;
+ case 5: return WIPE_CACHE;
case 6: return READ_RECOVERY_LASTLOG;
+ case 7: return SHUTDOWN;
default: return NO_ACTION;
}
}
diff --git a/recovery.cpp b/recovery.cpp
index 07606137b..641f36f3e 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -512,7 +512,7 @@ prepend_title(const char* const* headers) {
const char** new_headers = (const char**)malloc((count+1) * sizeof(char*));
const char** h = new_headers;
- *(h++) = "Android system recovery <" EXPAND(RECOVERY_API_VERSION) "e>";
+ *(h++) = "Android system recovery (API " EXPAND(RECOVERY_API_VERSION) ")";
*(h++) = recovery_version;
*(h++) = "";
for (p = headers; *p; ++p, ++h) *h = *p;
@@ -877,7 +877,11 @@ prompt_and_wait(Device* device, int status) {
break;
case Device::APPLY_EXT: {
- ensure_path_mounted(SDCARD_ROOT);
+ if (ensure_path_mounted(SDCARD_ROOT) != 0) {
+ ui->Print("\n-- Couldn't mount %s.\n", SDCARD_ROOT);
+ break;
+ }
+
char* path = browse_directory(SDCARD_ROOT, device);
if (path == NULL) {
ui->Print("\n-- No package file selected.\n", path);
@@ -910,7 +914,7 @@ prompt_and_wait(Device* device, int status) {
} else if (!ui->IsTextVisible()) {
return Device::NO_ACTION; // reboot if logs aren't visible
} else {
- ui->Print("\nInstall from sdcard complete.\n");
+ ui->Print("\nInstall from SD card complete.\n");
}
}
break;