Merge "Add "Apply update from sdcard" to default recovery image."
This commit is contained in:
@@ -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
|
||||||
+23
-17
@@ -20,19 +20,24 @@
|
|||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "screen_ui.h"
|
#include "screen_ui.h"
|
||||||
|
|
||||||
static const char* HEADERS[] = { "Volume up/down to move highlight;",
|
static const char* HEADERS[] = {
|
||||||
"enter button to select.",
|
"Volume up/down to move highlight.",
|
||||||
"",
|
"Power button to select.",
|
||||||
NULL };
|
"",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
static const char* ITEMS[] = {"reboot system now",
|
static const char* ITEMS[] = {
|
||||||
"apply update from ADB",
|
"Reboot system now",
|
||||||
"wipe data/factory reset",
|
"Reboot to bootloader",
|
||||||
"wipe cache partition",
|
"Apply update from ADB",
|
||||||
"reboot to bootloader",
|
"Apply update from SD card",
|
||||||
"power down",
|
"Wipe data/factory reset",
|
||||||
"view recovery logs",
|
"Wipe cache partition",
|
||||||
NULL };
|
"View recovery logs",
|
||||||
|
"Power off",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
class DefaultDevice : public Device {
|
class DefaultDevice : public Device {
|
||||||
public:
|
public:
|
||||||
@@ -65,12 +70,13 @@ class DefaultDevice : public Device {
|
|||||||
BuiltinAction InvokeMenuItem(int menu_position) {
|
BuiltinAction InvokeMenuItem(int menu_position) {
|
||||||
switch (menu_position) {
|
switch (menu_position) {
|
||||||
case 0: return REBOOT;
|
case 0: return REBOOT;
|
||||||
case 1: return APPLY_ADB_SIDELOAD;
|
case 1: return REBOOT_BOOTLOADER;
|
||||||
case 2: return WIPE_DATA;
|
case 2: return APPLY_ADB_SIDELOAD;
|
||||||
case 3: return WIPE_CACHE;
|
case 3: return APPLY_EXT;
|
||||||
case 4: return REBOOT_BOOTLOADER;
|
case 4: return WIPE_DATA;
|
||||||
case 5: return SHUTDOWN;
|
case 5: return WIPE_CACHE;
|
||||||
case 6: return READ_RECOVERY_LASTLOG;
|
case 6: return READ_RECOVERY_LASTLOG;
|
||||||
|
case 7: return SHUTDOWN;
|
||||||
default: return NO_ACTION;
|
default: return NO_ACTION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-3
@@ -512,7 +512,7 @@ prepend_title(const char* const* headers) {
|
|||||||
|
|
||||||
const char** new_headers = (const char**)malloc((count+1) * sizeof(char*));
|
const char** new_headers = (const char**)malloc((count+1) * sizeof(char*));
|
||||||
const char** h = new_headers;
|
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++) = recovery_version;
|
||||||
*(h++) = "";
|
*(h++) = "";
|
||||||
for (p = headers; *p; ++p, ++h) *h = *p;
|
for (p = headers; *p; ++p, ++h) *h = *p;
|
||||||
@@ -877,7 +877,11 @@ prompt_and_wait(Device* device, int status) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Device::APPLY_EXT: {
|
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);
|
char* path = browse_directory(SDCARD_ROOT, device);
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
ui->Print("\n-- No package file selected.\n", path);
|
ui->Print("\n-- No package file selected.\n", path);
|
||||||
@@ -910,7 +914,7 @@ prompt_and_wait(Device* device, int status) {
|
|||||||
} else if (!ui->IsTextVisible()) {
|
} else if (!ui->IsTextVisible()) {
|
||||||
return Device::NO_ACTION; // reboot if logs aren't visible
|
return Device::NO_ACTION; // reboot if logs aren't visible
|
||||||
} else {
|
} else {
|
||||||
ui->Print("\nInstall from sdcard complete.\n");
|
ui->Print("\nInstall from SD card complete.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user