diff --git a/Android.mk b/Android.mk index 15bcbad94..3d9c68e4d 100644 --- a/Android.mk +++ b/Android.mk @@ -128,6 +128,10 @@ ifeq ($(TARGET_USE_MDTP), true) LOCAL_CFLAGS += -DUSE_MDTP endif +ifeq ($(BOARD_HAS_DOWNLOAD_MODE), true) + LOCAL_CFLAGS += -DDOWNLOAD_MODE +endif + ifneq ($(BOARD_RECOVERY_BLDRMSG_OFFSET),) LOCAL_CFLAGS += -DBOARD_RECOVERY_BLDRMSG_OFFSET=$(BOARD_RECOVERY_BLDRMSG_OFFSET) endif diff --git a/device.cpp b/device.cpp index 14f2733e2..354ae4bc4 100644 --- a/device.cpp +++ b/device.cpp @@ -18,7 +18,11 @@ static const char* MENU_ITEMS[] = { "Reboot system now", +#ifdef DOWNLOAD_MODE + "Reboot to download mode", +#else "Reboot to bootloader", +#endif "Apply update", "Wipe data/factory reset", "Wipe cache partition", diff --git a/recovery.cpp b/recovery.cpp index a82a7239d..cba28ad43 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -1915,8 +1915,13 @@ int main(int argc, char **argv) { break; case Device::REBOOT_BOOTLOADER: +#ifdef DOWNLOAD_MODE + ui->Print("Rebooting to download mode...\n"); + property_set(ANDROID_RB_PROPERTY, "reboot,download"); +#else ui->Print("Rebooting to bootloader...\n"); property_set(ANDROID_RB_PROPERTY, "reboot,bootloader"); +#endif break; default: