Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2437486
  • 博文数量: 293
  • 博客积分: 2660
  • 博客等级: 少校
  • 技术积分: 3632
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 17:50
文章分类

全部博文(293)

文章存档

2015年(13)

2014年(58)

2013年(73)

2012年(25)

2011年(30)

2010年(86)

2009年(8)

分类: Android平台

2014-04-12 11:38:08

参考:
本文以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进行定位
阅读(4719) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~