Platform: imx6

OS: Android 4.4

device/fsl 目录:

[plain] view plaincopy
  1. diff --git a/common/recovery/Android.mk b/common/recovery/Android.mk
  2. index f98468b..c7a7886 100644
  3. --- a/common/recovery/Android.mk
  4. +++ b/common/recovery/Android.mk
  5. @@ -1,6 +1,10 @@
  6. LOCAL_PATH := $(call my-dir)
  7. include $(CLEAR_VARS)
  8. +#Kris,20151214, update by udisk.
  9. +LOCAL_CFLAGS += -DUDISK_UPDATE
  10. +
  11. +
  12. LOCAL_MODULE_TAGS := eng
  13. LOCAL_C_INCLUDES += bootable/recovery
  14. LOCAL_SRC_FILES := recovery_ui.cpp
  15. diff --git a/common/recovery/recovery_ui.cpp b/common/recovery/recovery_ui.cpp
  16. index 8d128e4..5b083c7 100644
  17. --- a/common/recovery/recovery_ui.cpp
  18. +++ b/common/recovery/recovery_ui.cpp
  19. @@ -35,6 +35,12 @@ const char* ITEMS[] = { "reboot system now",
  20. "wipe cache partition",
  21. /*Kris, Support upgrading from external sd.*/
  22. "apply update from external sd",
  23. +/*Kris, 20151214, update by udisk. {*/
  24. + #ifdef UDISK_UPDATE
  25. +                        "apply update from udisk",
  26. +#endif
  27. +/*Kris, 20151214, update by udisk. }*/
  28. +
  29. NULL };
  30. class ImxUI : public ScreenRecoveryUI {
  31. @@ -83,6 +89,11 @@ class ImxDevice : public Device {
  32. case 3: return WIPE_CACHE;
  33. /*Kris, Support upgrading from external sd.*/
  34. case 4: return APPLY_EXT;
  35. + /*Kris, 20151214, update by udisk. {*/
  36. +#ifdef UDISK_UPDATE
  37. +          case 5: return APPLY_FROM_UDISK;
  38. +#endif
  39. + /*Kris, 20151214, update by udisk. }*/
  40. default: return NO_ACTION;
  41. }
  42. }
  43. diff --git a/tek_mx6/fstab_recovery.freescale b/tek_mx6/fstab_recovery.freescale
  44. index 65cd716..ec62247 100644
  45. --- a/tek_mx6/fstab_recovery.freescale
  46. +++ b/tek_mx6/fstab_recovery.freescale
  47. @@ -5,6 +5,7 @@
  48. #Kris, mount external sd to /sdcard.
  49. /dev/block/mmcblk1p1    /sdcard      vfat    nosuid,nodev,barrier=1,data=ordered,nodelalloc                                   wait
  50. +/dev/block/sda1         /udisk       vfat    nosuid,nodev,barrier=1,data=ordered,nodelalloc                                   wait
  51. /dev/block/mmcblk0p5    /system      ext4    ro                                                                               wait
  52. /dev/block/mmcblk0p4    /data        ext4    nosuid,nodev,nodiratime,noatime,nomblk_io_submit,noauto_da_alloc,errors=panic    wait,encryptable=footer
  53. /dev/block/mmcblk0p6    /cache       ext4    nosuid,nodev,nomblk_io_submit                                                    wait

bootable/recovery目录改动:

[plain] view plaincopy
  1. diff --git a/Android.mk b/Android.mk
  2. index 2578c11..37ec3a4 100644
  3. --- a/Android.mk
  4. +++ b/Android.mk
  5. @@ -54,6 +54,10 @@ LOCAL_STATIC_LIBRARIES := \
  6. libm \
  7. libc
  8. +#Kris,20151214, update by udisk.
  9. +LOCAL_CFLAGS += -DUDISK_UPDATE
  10. +
  11. +
  12. LOCAL_CFLAGS += -DUSE_EXT4
  13. LOCAL_C_INCLUDES += system/extras/ext4_utils
  14. LOCAL_STATIC_LIBRARIES += libext4_utils_static libz
  15. diff --git a/device.h b/device.h
  16. index 583de75..b469d48 100644
  17. --- a/device.h
  18. +++ b/device.h
  19. @@ -65,8 +65,15 @@ class Device {
  20. //   - invoke a specific action (a menu position: any non-negative number)
  21. virtual int HandleMenuKey(int key, int visible) = 0;
  22. +/*Kris, 20151214, update by udisk. {*/
  23. + #ifdef UDISK_UPDATE
  24. enum BuiltinAction { NO_ACTION, REBOOT, APPLY_EXT, APPLY_CACHE,
  25. +                         APPLY_ADB_SIDELOAD, APPLY_FROM_UDISK,WIPE_DATA, WIPE_CACHE };
  26. + #else
  27. +     enum BuiltinAction { NO_ACTION, REBOOT, APPLY_EXT, APPLY_CACHE,
  28. APPLY_ADB_SIDELOAD, WIPE_DATA, WIPE_CACHE };
  29. +#endif
  30. + /*Kris, 20151214, update by udisk. }*/
  31. // Perform a recovery action selected from the menu.
  32. // 'menu_position' will be the item number of the selected menu
  33. diff --git a/etc/init.rc b/etc/init.rc
  34. index c634330..0b65db9 100644
  35. --- a/etc/init.rc
  36. +++ b/etc/init.rc
  37. @@ -15,6 +15,9 @@ on init
  38. symlink /system/etc /etc
  39. +#Kris,20151214, update by udisk.
  40. +    mkdir /udisk
  41. +
  42. mkdir /sdcard
  43. mkdir /system
  44. mkdir /data
  45. diff --git a/recovery.cpp b/recovery.cpp
  46. index 5ddd730..876f036 100644
  47. --- a/recovery.cpp
  48. +++ b/recovery.cpp
  49. @@ -81,6 +81,12 @@ static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log";
  50. static const char *TEMPORARY_INSTALL_FILE = "/tmp/last_install";
  51. static const char *SIDELOAD_TEMP_DIR = "/tmp/sideload";
  52. +/*Kris, 20151214, update by udisk. {*/
  53. + #ifdef UDISK_UPDATE
  54. + static const char *UDISK_ROOT = "/udisk";
  55. + #endif
  56. + /*Kris, 20151214, update by udisk. }*/
  57. +
  58. RecoveryUI* ui = NULL;
  59. char* locale = NULL;
  60. char recovery_version[PROPERTY_VALUE_MAX+1];
  61. @@ -910,6 +916,32 @@ prompt_and_wait(Device* device, int status) {
  62. }
  63. }
  64. break;
  65. +/*Kris, 20151214, update by udisk. {*/
  66. + #ifdef UDISK_UPDATE
  67. +              case Device::APPLY_FROM_UDISK:
  68. +         status = update_directory(UDISK_ROOT, UDISK_ROOT, &wipe_cache, device);
  69. +         if (status == INSTALL_SUCCESS && wipe_cache) {
  70. +             ui->Print("\n-- Wiping cache (at package request)...\n");
  71. +             if (erase_volume("/cache")) {
  72. +                 ui->Print("Cache wipe failed.\n");
  73. +             } else {
  74. +                 ui->Print("Cache wipe complete.\n");
  75. +             }
  76. +         }
  77. +         if (status >= 0) {
  78. +             if (status != INSTALL_SUCCESS) {
  79. +                 ui->SetBackground(RecoveryUI::ERROR);
  80. +                 ui->Print("Installation aborted.\n");
  81. +             } else if (!ui->IsTextVisible()) {
  82. +                 return;  // reboot if logs aren't visible
  83. +             } else {
  84. +                 ui->Print("\nInstall from udisk complete.\n");
  85. +             }
  86. +         }
  87. +         break;
  88. +
  89. + #endif
  90. + /*Kris, 20151214, update by udisk. }*/
  91. }
  92. }
  93. }

imx6 android4.4 Recovery添加从U盘升级功能相关推荐

  1. android5.1 Recovery添加从U盘升级功能【转】

    本文转载自:http://blog.csdn.net/tfslovexizi/article/details/73835594 之前看到过一个人写了4.4上添加U盘升级功能的博客http://blog ...

  2. RK3229平台Android6.0系统添加广升OTA升级功能

    添加脚本: build/core/FotaInfo.sh #!/bin/bash#********Do not modify this file. If you want modify this fi ...

  3. android4.2.2 surfaceflinger,[imx6 ]Android4.4.3--surfaceflinger导致系统起不来,ldb显示问题...

    我们板子参照sabresd设计的.之前使用系统android4.2.2,现在移植官网BSP android4.4.3 目前surfaceflinger导致系统启动失败.一直打印如下红色显示的信息. r ...

  4. Thinkpad 预装win8 UEFI+GPE 安装Ubuntu双系统 与win8中Lenovo recovery 制作恢复启动盘

    折腾了好久终于把这事搞定了,在这里告诫下大家,在完全摸清楚这些底细之前最好先别急着动手.当然,做什么事都应该这样. 分清楚UEFT/GPG和BIOS/MBR 每一种启动项对应一种分区方式,在BIOS启 ...

  5. 计算机里找不到网络映射盘,怎么win10上添加网络映射盘_win10添加网络映射盘的方法...

    工作中经常会使用到电脑,好多网友留言说怎么win10上添加网络映射盘?映射网络驱动一般是在局域网中有用,可以把分机的共享的那个盘符映射到主机的版电脑上,这样主机可以权直接地调用分机的共享文件.默认情况 ...

  6. 威联通+Plex添加阿里网盘资源至媒体库的方法

    威联通+Plex添加阿里网盘资源至媒体库的方法 一.挂载阿里网盘 二.将挂载后NAS的阿里网盘挂载到本地 三.Plex添加挂载到本地的文件目录 分三步: 挂载阿里网盘 将挂载的网盘挂载到本地,否则在P ...

  7. 生成msk文件的用处_Yotta企业云盘“小”功能大用处企业办公好伙伴

    Yotta企业云盘"小"功能大用处企业办公好伙伴 对于传统的数据存储,Yotta企业云盘可以很好的超越传统存储所面临的挑战. 1.支持本地文件多个同时上传:在网盘中,在需要上传文件 ...

  8. 禁用计算机usb设备,电脑如何设置禁止使用USB设备以及电脑怎样屏蔽U盘使用功能...

    我们的电脑都有些自己的东西,尤其是办公室政治.当你满满花了一天做出的成品,被他人用U盘轻易的盗走了,就是有理说不出的杯具呀.本次小编就为你提供了解决这个悲剧的办法,让电脑禁止使用USB设备,屏蔽电脑使 ...

  9. RT-thread应用讲解——通过U盘升级程序固件

    RT-thread应用讲解--通过U盘升级程序固件 目录 RT-thread应用讲解--通过U盘升级程序固件 前言 一.挂载U盘 二.使能OTA 三.U盘升级代码 四.运行测试 五.结束语 前言 我前 ...

最新文章

  1. React文档(六)state和生命周期
  2. 装鸡蛋的鞋子java代码_Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)...
  3. linux过滤脚本中的字段,Shell脚本中常用的文本过滤命令
  4. 类路径是什么意思_多播是什么意思 多播介绍【详解】
  5. 现在的年轻人不够努力了吗?是什么原因?
  6. html自动给js添加版本号,通过gulp 在原html文件上自动化添加js、css版本号
  7. ABBYY PDF Transformer+功能概述
  8. 服务器注意事项(切记!)
  9. live2d内嵌html,live2d web端加载moc3模型
  10. Ember项目引入js依赖
  11. 养老院智能健康手环开发/功能/特点/结构/原理
  12. plt.pcolormesh()中遇到TypeError:Dimensions of C (..., xxx) are incompatible with X (...) and/or Y (xxx)
  13. 摄像头测试程序无线摄像头测试程序
  14. cesium 使用entities、primitives添加的模型并且改变模型颜色
  15. 怎么远程控制linux,Linux远程控制
  16. 台式计算机如何升级,老电脑如何升级 老电脑升级方法【详细介绍】
  17. 阿伟的学习计划5.28-6.29
  18. 一键照片转换动漫卡通风,一键给黑白照片上色
  19. 工业相机 linux驱动软件,菲力尔FLIR-灰点Point Grey工业相机Linux Ubuntu18.04系统驱动Spinnaker-2.0.0.147-amd64/arm64...
  20. 软件测试标准流程(思维导图版)

热门文章

  1. python的多线程
  2. Java动态追踪技术
  3. ZORRO佐罗软件安装教程及一键新机使用方法详细简介
  4. %d,%c,%s,%x各代表什么
  5. 英语作业介绍一项发明计算机,计算机专业英语第1次作业.doc
  6. Linux权限drwxrwxrwx是什么意思?
  7. ERP咨询顾问必备的7种公关能力
  8. 验证码识别dll库,识别率95%
  9. android wifi是否可用,Android判断网络是否可用、区分WiFi和数据、是否被安全软件拦截...
  10. DBeaver导出结果集为CSV文件,数据用引号括起来