Platform: imx6
OS: Android 4.4
device/fsl 目录:
- diff --git a/common/recovery/Android.mk b/common/recovery/Android.mk
- index f98468b..c7a7886 100644
- --- a/common/recovery/Android.mk
- +++ b/common/recovery/Android.mk
- @@ -1,6 +1,10 @@
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- +#Kris,20151214, update by udisk.
- +LOCAL_CFLAGS += -DUDISK_UPDATE
- +
- +
- LOCAL_MODULE_TAGS := eng
- LOCAL_C_INCLUDES += bootable/recovery
- LOCAL_SRC_FILES := recovery_ui.cpp
- diff --git a/common/recovery/recovery_ui.cpp b/common/recovery/recovery_ui.cpp
- index 8d128e4..5b083c7 100644
- --- a/common/recovery/recovery_ui.cpp
- +++ b/common/recovery/recovery_ui.cpp
- @@ -35,6 +35,12 @@ const char* ITEMS[] = { "reboot system now",
- "wipe cache partition",
- /*Kris, Support upgrading from external sd.*/
- "apply update from external sd",
- +/*Kris, 20151214, update by udisk. {*/
- + #ifdef UDISK_UPDATE
- + "apply update from udisk",
- +#endif
- +/*Kris, 20151214, update by udisk. }*/
- +
- NULL };
- class ImxUI : public ScreenRecoveryUI {
- @@ -83,6 +89,11 @@ class ImxDevice : public Device {
- case 3: return WIPE_CACHE;
- /*Kris, Support upgrading from external sd.*/
- case 4: return APPLY_EXT;
- + /*Kris, 20151214, update by udisk. {*/
- +#ifdef UDISK_UPDATE
- + case 5: return APPLY_FROM_UDISK;
- +#endif
- + /*Kris, 20151214, update by udisk. }*/
- default: return NO_ACTION;
- }
- }
- diff --git a/tek_mx6/fstab_recovery.freescale b/tek_mx6/fstab_recovery.freescale
- index 65cd716..ec62247 100644
- --- a/tek_mx6/fstab_recovery.freescale
- +++ b/tek_mx6/fstab_recovery.freescale
- @@ -5,6 +5,7 @@
- #Kris, mount external sd to /sdcard.
- /dev/block/mmcblk1p1 /sdcard vfat nosuid,nodev,barrier=1,data=ordered,nodelalloc wait
- +/dev/block/sda1 /udisk vfat nosuid,nodev,barrier=1,data=ordered,nodelalloc wait
- /dev/block/mmcblk0p5 /system ext4 ro wait
- /dev/block/mmcblk0p4 /data ext4 nosuid,nodev,nodiratime,noatime,nomblk_io_submit,noauto_da_alloc,errors=panic wait,encryptable=footer
- /dev/block/mmcblk0p6 /cache ext4 nosuid,nodev,nomblk_io_submit wait
bootable/recovery目录改动:
- diff --git a/Android.mk b/Android.mk
- index 2578c11..37ec3a4 100644
- --- a/Android.mk
- +++ b/Android.mk
- @@ -54,6 +54,10 @@ LOCAL_STATIC_LIBRARIES := \
- libm \
- libc
- +#Kris,20151214, update by udisk.
- +LOCAL_CFLAGS += -DUDISK_UPDATE
- +
- +
- LOCAL_CFLAGS += -DUSE_EXT4
- LOCAL_C_INCLUDES += system/extras/ext4_utils
- LOCAL_STATIC_LIBRARIES += libext4_utils_static libz
- diff --git a/device.h b/device.h
- index 583de75..b469d48 100644
- --- a/device.h
- +++ b/device.h
- @@ -65,8 +65,15 @@ class Device {
- // - invoke a specific action (a menu position: any non-negative number)
- virtual int HandleMenuKey(int key, int visible) = 0;
- +/*Kris, 20151214, update by udisk. {*/
- + #ifdef UDISK_UPDATE
- enum BuiltinAction { NO_ACTION, REBOOT, APPLY_EXT, APPLY_CACHE,
- + APPLY_ADB_SIDELOAD, APPLY_FROM_UDISK,WIPE_DATA, WIPE_CACHE };
- + #else
- + enum BuiltinAction { NO_ACTION, REBOOT, APPLY_EXT, APPLY_CACHE,
- APPLY_ADB_SIDELOAD, WIPE_DATA, WIPE_CACHE };
- +#endif
- + /*Kris, 20151214, update by udisk. }*/
- // Perform a recovery action selected from the menu.
- // 'menu_position' will be the item number of the selected menu
- diff --git a/etc/init.rc b/etc/init.rc
- index c634330..0b65db9 100644
- --- a/etc/init.rc
- +++ b/etc/init.rc
- @@ -15,6 +15,9 @@ on init
- symlink /system/etc /etc
- +#Kris,20151214, update by udisk.
- + mkdir /udisk
- +
- mkdir /sdcard
- mkdir /system
- mkdir /data
- diff --git a/recovery.cpp b/recovery.cpp
- index 5ddd730..876f036 100644
- --- a/recovery.cpp
- +++ b/recovery.cpp
- @@ -81,6 +81,12 @@ static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log";
- static const char *TEMPORARY_INSTALL_FILE = "/tmp/last_install";
- static const char *SIDELOAD_TEMP_DIR = "/tmp/sideload";
- +/*Kris, 20151214, update by udisk. {*/
- + #ifdef UDISK_UPDATE
- + static const char *UDISK_ROOT = "/udisk";
- + #endif
- + /*Kris, 20151214, update by udisk. }*/
- +
- RecoveryUI* ui = NULL;
- char* locale = NULL;
- char recovery_version[PROPERTY_VALUE_MAX+1];
- @@ -910,6 +916,32 @@ prompt_and_wait(Device* device, int status) {
- }
- }
- break;
- +/*Kris, 20151214, update by udisk. {*/
- + #ifdef UDISK_UPDATE
- + case Device::APPLY_FROM_UDISK:
- + status = update_directory(UDISK_ROOT, UDISK_ROOT, &wipe_cache, device);
- + if (status == INSTALL_SUCCESS && wipe_cache) {
- + ui->Print("\n-- Wiping cache (at package request)...\n");
- + if (erase_volume("/cache")) {
- + ui->Print("Cache wipe failed.\n");
- + } else {
- + ui->Print("Cache wipe complete.\n");
- + }
- + }
- + if (status >= 0) {
- + if (status != INSTALL_SUCCESS) {
- + ui->SetBackground(RecoveryUI::ERROR);
- + ui->Print("Installation aborted.\n");
- + } else if (!ui->IsTextVisible()) {
- + return; // reboot if logs aren't visible
- + } else {
- + ui->Print("\nInstall from udisk complete.\n");
- + }
- + }
- + break;
- +
- + #endif
- + /*Kris, 20151214, update by udisk. }*/
- }
- }
- }