編譯CWM-recovery

      前面介紹了怎麼同步CM源碼以後,剩下的要不就是編譯卡(線)刷包了,其中編譯recovery也是其中的一部分,下面介紹的是單獨編譯recovery的教程。linux

1)、同步完源碼後,輸入如下命令。(看了一下,這個命令不是必須的,若是你是再從CM同步指定的device設備的話,就須要這一步)
cd ~/Source/vendor/cm
./get-prebuiltsgit

2)、執行下面命令,完成環境的安裝
cd ~/Source(此爲編譯的recovery的工做目錄,就是有Makefile那裏)
. build/envsetup.sh(.後面是空格再到build)github

3)、make要用到的工具,會生成out目錄
make -j8 otatoolsvim

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.imgui

基本語法是:blog

./build/tools/device/mkvendor.sh 廠商名 設備名 boot或者recovery的路徑教程

這樣就會生成/device/xiaomi/hongmi/,裏面有紅米的device文件,還要修改recovery.fstab和BoardConfig.mk文件,具體以下:get

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展現:

相關文章
相關標籤/搜索