第十七期 CyanogenMod 编译小米3W《手机就是开发板》

https://blog.csdn.net/aggresss/article/details/53999626

上一期我们使用直接下载的第三方固件在手机上刷机通过,相对于源码级别的改装还只是皮毛,这一期我们来实践下载并编译CyanogenMod源码,编译出固件并刷机试验。
这里假设您已经搭建了AOSP的源码编译环境,如果没有请转到第二期。
1.下载和编译前安装下面这些软件:

sudo apt-get install bc bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev


如果有安装错误,请执行 sudo apt-get install update 然后执行 sudo apt-get install upgrade
2.下载CM源码的方法和AOSP大体相同,建议一个存放将要下载的源码的目录,然后在目录下执行:
repo init -u https://github.com/CyanogenMod/android.git -b cm-13.0
当repo仓库建立完成后先别急着同步,作为大中华区用户,您还得改点东西,把指向googlesource的下载地址修改成国内的镜像,将 .repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为https://aosp.tuna.tsinghua.edu.cn/

3.使用 repo sync 命令开始下载源码 一共 528个 projects ,大约有 13GB 大小。
4.下载完成后 执行 source build/envsetup.sh 命令 加载编译所需的环境变量;
5.执行 breakfast cancro ,创建 LocalManifest 配置文件,这一步可能会报错,但只要devices/xiaomi/cancro/目录存在,就可以继续下一步;
6.提取设备专有文件(Extract Propertietary Blobs),这一步是比较关键的,因为版权问题,一些非开源的程序不会出现在CM的源码当中,所以必须从你现有的手机中提取,我们刚才刷好的手机这回必须要用上了。将手机通过USB连接到PC,先执行adb root , 如果成功后,进入到cancro目录:
cd ~/android/system/device/xiaomi/cancro
然后运行提取专有文件的命令 ./extract-files.sh
如果按照下载的原始文件去执行提取命令是100%会出错的,因为有些文件无论是在MIUI还是在CM中都是找不到的,经过我的摸索,去掉了一些文件的提取,修改了proprietary-files.txt文件,下面是这个文件的链接,下载后替换一下再提取文件就不会出错了。
https://github.com/aggresss/PHDemo/blob/master/Tools/cancro/proprietary-files.txt
7. 执行croot 命令, 回到CM源码的根目录,然后执行 brunch cancro 开始编译,编译的过程不会一帆风顺,需要点耐心。

参考文章:
http://blog.csdn.net/shulianghan/article/details/51592930
http://blog.csdn.net/sy373466062/article/details/51554341
http://www.2cto.com/kf/201606/517557.html

CM Mi3 系统源码:https://github.com/cyanogenmod/android_device_xiaomi_cancro
CM Mi3 内核源码:https://github.com/cyanogenmod/android_kernel_xiaomi_cancro

猜你喜欢

转载自blog.csdn.net/wxh0000mm/article/details/86302151