Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4248721
  • 博文数量: 241
  • 博客积分: 15936
  • 博客等级: 上将
  • 技术积分: 25293
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 11:22
个人简介

Fedora-ARM

文章分类
文章存档

2016年(3)

2014年(1)

2013年(3)

2012年(50)

2011年(61)

2010年(26)

2009年(27)

2008年(21)

2007年(49)

分类: LINUX

2011-01-02 21:20:53

今天对比分析了一下recovery.img和boot.img的结构,从中粗略知道了Android手机中的恢复模式是怎么回事。
以下是文件结构的对比图:


从中我们知道:


(1)recovery.img其实已经是进入了Linux系统。


(2)recovery.img为了具有恢复系统的能力,比普通的boot.img目录结构中:
       1、多了/res/images目录,在这个目录下的图片都是恢复时我们看到的背景画面。
       2、多了/sbin/recovery二进制程序,这个就是恢复用的程序。
       3、/sbin/adbd不一样,应该和恢复有关。


(3)Android系统中的初始化程序(init)和初始化配置文件(default.prop、init.trout.rc、init.rc、init.goldfish.rc、)都不一样。这就是系统没有进入图形界面而进入了类似文本界面,并可以通过简单的组合键进行恢复的原因。

通过查阅相关资料,对android的recovery模式有了一定的了解:

Android 可以通过Recovery 模式,实现恢复出厂设置、OTA 升级、patch 升级及firmware 升级。在关机后,同时按下home + power 键可以进入recovery模式。
大部分升级(包括刷机)都可以通过一个SD卡中的"updata.zip"文件升级包进行傻瓜式升级(步骤简单的升级)。而这一过程就是在系统进入Recovery模式后,通过升级程序运行升级包中“META-INF/com/google/android/update-script 脚本来执行各种不同的自定义升级,脚本中是一组recovery 模式下系统能识别的UI 控制命令和文件系统操作命令,例如write_raw_image (烧写FLASH 分区)、copy_dir (复制目录)等等。

具体的Recovery 模式执行过程,有空看了源码再细说。

阅读(4760) | 评论(1) | 转发(6) |
给主人留下些什么吧!~~

whj41402011-05-19 11:25:32

通过升级程序运行升级包中“META-INF/com/google/android/update-script “

你好,我使用的是android平台的山寨G3,进入recovery刷机时提示assert failer:!less_than_int(1291348247,getprop("ro.build.date.utc"))
这个错误提示在META-INF/com/google/android/update-script文件的第一句中可以找到,但是不明白为什么会提示这个错误,求帮助,谢谢!