该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
###自制recovery####
接着开始自制recovery吧,下面步骤:
1。从官方包,解压出原生的recovery.img。
2。按照上面解img 的方法,解出原生recovery包的内
核recovery.img-kernel 和ramdisk 内存镜像,再把
ramdisk内存镜像解包,我们要在这个基础上作修改。
3。找到合适的功能比较好的第三方recovery包,比如
以G6的recovery-clockwork-5.0.2.0.img为例,同样解
出其内核kernel 和ramdisk 内存镜像,再把ramdisk
内存镜像解包,我们需要这个包内的有用文件。
4。准备新recovery 的内核,我们使用官方原生包的
recovery.img-kernel,只有原生的内核才能跟手机的硬
件匹配。
5。修改ramdisk内存盘,其内文件列表大致如下:
./init.trout.rc
./default.prop
./proc
./dev
./init.rc
./init
./sys
./etc
./init.goldfish.rc
./sbin
./system
./data
1)default.prop,是一定要改的,可以参照第三方的改,
最关键的:
ro.secure=0 关闭保护
ro.allow.mock.location=1
ro.debuggable=1 调试模式开
persist.service.adb.enable=1 adb远程开
2)/sbin 里面所有的文件都替换成第三方包里面的,
特别是其中有个recovery文件,所有的第三方功能都
在这个recovery中实现。
3)/etc 里的recovery.fstab,是挂载表,可以提供sd
卡ext分区支持。
4)/init可以用原生的,第三方的也行。
6。按照上面打包ramdisk 的方法打包新改的ramdisk
内存盘。
7。按照上面打包img 的方法打包生成新的
recovery-new.img。
正常情况下,到这一步我们自制的recovery.img 就做
好了,可是按上面刷recovery的方法刷入手机了,可
是手机依然是S-ON。这就意味着Hboot会对recovery
进行校验,如果校验不对,那么对不起,你别想启动
手机。最终我发现了HTC S-ON验证的秘密:
还记得上面说img 的2K的文件头么?秘密就在这里,
可惜不能直接贴图,具体操作如下:
[——现在看来这段话以及下面的8、9、10三步的分
析是有问题的,但是操作虽然怪异结果却是正确的,
正确的分析以及正常的操作,请看下面我11.27日的
补充。小秋 2011.11.29 注]
8。用UltraEdit-32(或者其他16进制编辑器)打开刚
改好生成的recovery-new.img,记住第二行的前三个字
节(10h的0、1、2三个),一会儿有用。
9。再打开手机原生的recovery.img。对比来两个文件
的文件头,把原生的前16行(000h-100h)复制到新
的recovery上覆盖。这个就是S-on校验的内容,直接
生成的img 启动不了就是因为这里通不过校验。
10。最后把新的recovery-new.img,第二行的前三个字
节改回到刚才记下的三个值,保存就OK了。这一步
很关键,我一直是在此处徘徊的,最初我只保留前两
个字节,造成只要对原生img 一改动得稍大一点就启
动不了。总之这里的三个值很关键,好像跟img 的大
小有关系,如果不对的话新的recovery绝对启动不了。