【新提醒】【高级开发教程】编译recovery.img教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【新提醒】【高级开发教程】编译recovery.img教程小白不要试,没有开发基础不行的
大家都知道电脑用winCE做系统的ghost备份吧?启动另外一个小的系统,然后把电脑上的系统备份下来,当
出了问题的时候再ghost回去。我们手机上的recovery 其实就相当于这个小系统。
先说官方原生的recovery:
######################################
官方原生的recovery 功能太少,简直垃圾
######################################
1。[进入recoery的方法]:
a.手机完全关机(即关机后拔电池3秒,然后再装上),
或者先把设置-应用程序-快速启动的钩去掉然后关机。
b.按住音量下键,再按电源键。这时手机会进入Hboot 模式。音量上下是选择,电源键是确定。
c.选择进入recovery。这时你会看到一个三角叹号。有人会被这个图形吓住,不敢动。我告诉你就算你等一
天还是这个图形,因为还要按键。
d.按住音量上键,然后再按电源键。现在进入recovery
见面了,界面标题是:Android system recovery
<3e>,
有四个选项依次是:重起,从SD卡更新,擦除DATA 区和擦除cache区。
2。原生recovery的功能及局限:
可以看到原生的recovery,唯一可能有用的是“从SD 卡更新”。这里我试过,局限很大:
a.文件名必须是updata.zip,并且放在SD根目录。
b.这个updata.zip必须是官方发布的,也就是要进行官方签名认证。有心的人肯定试过,哪怕是官方发布的包,只要对里面内容做一点修改,签名就破坏掉了,也就不能用了。
c.只能升级,不能降级。这就是为什么有的人升成2.0 的了,想用官方1.8的包救命救不了的原因。
##############################
第三方recovery 没有能用的
##############################
既然原生的recovery 不好用,那我们装第三方的recovery 把,网上到处都是,最著名例如:
recovery-clockwork和4EXTRecovery等等,这些可不可以直接拿来用呢?有心的人又会发现,这些recovery
不是通用的,不同的机型对应着不同的recovery,可
是网上任何地方都找不到可用的啊!
怎么[刷第三方recovery]:
1。因为依然是s-on,所以不能通过fastboot 直接刷recovery。
2。因为我们原生的recovery只认官方签名的升级包,所以我们不能通过recovery来升级到第三方recovery。3。所以我们剩下一个办法了,用root权限刷recovery。
a.首先是取得root权限。
b.下载解压刷写程序:flash_image,并放到adb所在目
录中,以我的一键root包为例,既放到adbtools中。c.下载第三方recovery 放在相同目录下,假设文件名为:recovery.img。
d.连接手机到电脑,并打开调试模式,在电脑上运行cmd命令,cd到相关目录下,然后运行:
E:\adbtools>adb push .\flash_image /sdcard/
E:\adbtools>adb push .\recovery.img /sdcard/
E:\adbtools>adb shell
$su (有的可能此处需要到手机确认赋予root权限) #mount -o remount rw /system
#cat /sdcard/flash_image>/system/bin/flash_image #rm /sdcard/flash_image
#chmod 755 /system/bin/flash_image
#chown root.shell /system/bin/flash_image
#cd /sdcard
#flash_image recovery recovery.img
然后回现实刷写进程,几秒之后回到# 。
我按照上述方法刷过2、3十个不同的第三方recovery,
都可以正常刷入,重起进入recovery 时停在G3第一
屏。如果要恢复官方的recovery可以按照上诉方法把
官方的recovery.img 刷入即可,可以正常的恢复到三
角叹号。最后的结论是:在root权限下,recovery可
以刷入,问题是刷入的第三方recovery都不适合所以
我们只能自制recovery了。
######################################
##### 自制recovery ########
###################################### ###背景知识####
boot和recovery映像并不是一个完整的文件系统,它们是
一种android
自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip
压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的
载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。
boot是正常引导手机系统的,recovery 是在boot的基础上增加了一些
功能。他们的img 结构如下:
** -----------------
** | boot header | 1 page
** -----------------