编译CWM-recovery

      前面介绍了怎么同步CM源码之后,剩下的要不就是编译卡(线)刷包了,其中编译recovery也是其中的一部分,下面介绍的是单独编译recovery的教程。

1)、同步完源码后,输入以下命令。(看了一下,这个命令不是必须的,如果你是再从CM同步指定的device设备的话,就需要这一步)
cd ~/Source/vendor/cm
./get-prebuilts

2)、执行下面命令,完成环境的安装
cd ~/Source(此为编译的recovery的工作目录,就是有Makefile那里)
. build/envsetup.sh(.后面是空格再到build)

3)、make要用到的工具,会生成out目录
make -j8 otatools

4)、将生成的/out/host/linux-x86/bin加入环境变量:
vim /etc/profile
在文本最后添加:
export PATH=$PATH: ~/Source/out/host/linux-x86/bin
保存退出,执行下面命令,让刚加的环境变量生效:
source /etc/profile

5)、建立本地device,从手机的官方包(官方的线刷包或者卡刷包)中提取boot.img或者recovery.img,比如红米手机,复制到~/Source目录里,执行命令:
./build/tools/device/mkvendor.sh xiaomi hongmi ~/Source/boot.img

基本语法是:

./build/tools/device/mkvendor.sh 厂商名 设备名 boot或者recovery的路径

这样就会生成/device/xiaomi/hongmi/,里面有红米的device文件,还要修改recovery.fstab和BoardConfig.mk文件,具体如下:

6)、编辑recovery.fstab,可以从别人编译好的recovery中提取recovery.fstab,当没有第三方recovery的时候就只能自己根据手机的信息进行修改,具体可以参考手机adb命令下的这些(其实还有其他的,但在此无法一一列举):

cat /proc/dumchar_info
cat /proc/mounts
cat /proc/partitions

BoardConfig.mk有些情况下是不需要修改的,MTK的目前大多数都是不需要怎么修改的,其他CPU的就不一定。

7)、开始编译recovery
还是在Source目录下,其实下面命令在5)、时会在提示中出现,
lunch cm_hongmi-eng
make -j8 recoveryimage

8)、编译生成的文件

执行完make -j8 recoveryimage之后,会在out目录生成指定设备的输出目录,里面会生成刚才编译的recovery.img,ramdisk等,但是生成的recovery.img不一定是可以直接使用的,

打个比方,比如编译MTK的recovery的时候,生成的recovery.img就不能使用,需要解包官方的recovery,替换ramdisk,打包recovery,这样打包生成的recovery才是可以直接刷进去使用的。其中替换的ramdisk就是out目录

生成的以cpio后缀结尾的文件。另外高通带dt.img的好像必须要修改BoardConfig.mk文件,其他CPU的有待研究。

9)、另外编译生成的recovery是全英文的,想要中文的recovery必须要修改源码个增加字库文件,但是这样搞太麻烦,网上有专门写好的源码下载,在github里面都是开源的,感谢这些大神的创作,下载的时候找对跟自己源码版本对应(在bootable/recovery/Android.mk里查看),CM11最终版是6.0.5.1,如果是现在同步了CM11源码,只需要找对应版本的中文recovery源码即可。

下面是我编译的recovery展示:

Zeham Wong - 若不握著劍,便不能保護你,但就這樣握著劍,卻無法擁你入懷!
原文地址:https://www.cnblogs.com/zeham/p/4250342.html