Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50524
  • 博文数量: 47
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-19 01:39
文章分类
文章存档

2015年(18)

2014年(29)

我的朋友

分类: Android平台

2015-08-06 21:35:49

参考:
本文以ZTE U985为例
1.烧入recovery.img。recovery.img和boot.img两个的修改方式和文件结构内容类似。
2.配置recovery模式下的adb shell()
  a.把recovery.img解包
  b.把busybox()拷贝到/sbin下
  c.在/sbin下执行ln -s busybox sh;ln -s busybox cd;
  d.在/system下执行ln -s ../sbin bin
  e.将recovery重新打包,烧入手机
  f.进入recovery模式,执行adb shell;cd /sbin;然后就可以通过ln -s busybox cat创建自己需要的命令;
  g.挂载其它分区  
      mkdir sdcard ;mount /dev/block/platform/sdhci-tegra.2/by-num/p1 /sdcard(外置sd卡);
     mkdir sdcard-ext ;mount /dev/block/platform/sdhci-tegra.3/by-name/SDC /sdcard-ext(内置sd卡)
3.进入/bootable/recovery,修改init.rc,新增一行,创建内置sd卡的挂载点
    mkdir  /sdcard-ext
4.修改/etc/recovery.fstab,确保进入recovery模式下后自动将内置sd卡挂载到/sdcard-ext 
    /sdcard-ext         vfat            /dev/block/platform/sdhci-tegra.3/by-name/SDC
   /src/device/qcom/msm8660_surf/recovery.fstab
5.修改default_recovery_ui.c
点击(此处)折叠或打开
  1. char* MENU_ITEMS_COLD_SD_UPDATE[] = { "reboot system now",
  2.                        "apply update from external storage",
  3.                        "wipe data/factory reset",
  4.                        "insidecard update",    //新增菜单
  5.                        NULL };
6.修改recovery_ui.h,新增宏定义
点击(此处)折叠或打开
  1. #define ITEM_APPLY_INSIDECARD 3
7.修改recovery.c
  新增定义

点击(此处)折叠或打开

  1. static const char *INSIDECARD_ROOT = "/sdcard-ext";
  2. static const char *INSIDECARD_UPDATE_PACKAGE ="/sdcard-ext/update.zip";
   在switch (chosen_item) {}下面增加相关处理

点击(此处)折叠或打开

  1. case ITEM_APPLY_INSIDECARD:
  2.                 update_package = INSIDECARD_UPDATE_PACKAGE;
  3.                 break;
然后通过mm编译出新的recovery文件,替换recovery.img下/sbin的文件,重新打包烧入即可,然后将update.zip包放入内置sd卡就可以进行升级
8.整个过程可以通过/tmp/recovery.log进行定位
阅读(402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~