说到编译Recovery 是不是觉得这是XDA上那些大神干的事,帮我们适配好机型我们照着教程刷进去就好了。但是,作为Geek,就此止步未免太WEAK了,我们应该学会如何做一个自己的Recovery。
首先是环境准备,至少要有一个Linux(最好是Ubuntu 16.04 因为AOSP的主线分支是用这个环境开发的,用这个可以最大程度地减少依赖导致的编译错误),然后简单的敲几行命令就可以让它开始编译了,这里可以参照教程编译AOSP源码的全过程,至于里面的源,我推荐使用清华大学TUNA协会的TUNA源,这个源一般是满速下载的,而且更新比较及时(而且下载之后可以多做几步帮他们建立一个二级源减少服务器负担哦 0v0 开源共享精神)。为什么我们需要编译这么一个19G的源码呢?因为我们的Recovery作为android系统的一个部件,有一些通用接口是由系统提供的,所以需要先获得这些工具才可以进行下一步的处理与编译。
环境准备的第二步是提取一个现有的recovery,任何android手机里都会有一个recovery分区,它里面存的镜像是和boot.img一样的格式的启动镜像,所以我们要先尝试提取它,网上很多教程其实现在都不是很合适了,我这里提供一个比较通用的方法。命令行输入


> adb shell
$ su
# cat /proc/partitions #打印分区表 然后里面8-40M的分区 基本上就是boot分区了 但是这样的分区一般有多个 我们把它们全部提取出来
# cat /dev/block/mmcblk0p33 > /sdcard/1.img #提取到/sdcard/1.img
> adb pull /sdcard/1.img

//然后提取出来若干个img 用UltraEditor打开 如果前面八个字符是ANDROID!那它就是一个bootimg,把不是的先去掉,然后用我给出的工具解包img


解包工具 git编译并运行 unzipimg 1.img 得到一个kernel和一个ramdisk.gz 然后如何判断是不是recovery呢,我们从这个RAMdisk下手,解压ramdisk.gz 然后把里面的ramdisk盘重命名为ramdisk.zip,再次解压,得到真正的内部文件,如果里面有recovery的字样,那恭喜你,提取到了正确的recovery镜像,接下来的工作就要在编译完成之后再做了 0v0

分类:

发表评论

电子邮件地址不会被公开。