作为一个刷机爱好者,刷过无数个ROM,特别是CyanogenMod的,所以,一直想自己定制ROM玩玩,毕竟自
己是干这一行 的,本身CyanogenMod源码也是很好的一个学习样本。
以下步骤在我自己手机Sony Xperia Z(C6603)上验证正常使用的:
1. 配置编译环境,这个不多讲,网上资料很多,也可参考我之气博客,保证可以正常编译android源码;
2. 下载CyanogenMod公共源码:
比如最新的android4.4 cm-11.0:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
repo sync (以后更新代码,只要执行这一步就够了)
后面的branch名称参考:https://github.com/CyanogenMod/android
这个下载需要很长时间,当然,首先得保证你网络可以正常访问Google网站,不然可能下载不了
或断断续续,自己 想办法吧。
3. 接下来就是下载和特定机型相关的源码,这边Sony Xperia Z:
主要三个部分:/device /kernel /vendor,如果你熟悉android,应该知道这三个目录,当然,不知道
也没关系,傻瓜式教程。
切换到根目录: source build/envsetup.sh 然后 breakfast yuga (yuga是Xperia Z代号),可能会有报错,
无视,仍会自动继续下载代码,等更新完毕后,发现 多了 kernel 和 device/sony 两个目录。
vendor目录不是开源的,需要你手动下载:https://github.com/TheMuppets?query= ,这边是:
https://github.com/TheMuppets/proprietary_vendor_sony ,切换到branch cm-11.0,
点击右边的"Download ZIP"下载,完毕后,解压到 vendor/sony/目录,应该能找到 vendor/sony/yuga 和
vendor/sony/fusion3-common目录
这个时候,再breakfast yuga 或者lunch yuga, 诸如下面这些报错就不见了:
"vendor/sony/fusion3-common/fusion3-common-vendor.mk" does not exist。
查询你的设备是否支持CM:http://wiki.cyanogenmod.org/w/Devices#vendor=;
如果不在支持列表中,还有非官方支持列表:http://wiki.cyanogenmod.org/w/Unofficial_Ports
*********************************************************************************
补充几个:其实/device /kernel /vendor 三个部分代码你也可以通过git clone下载,当然,首先你
得github.com注册个帐号,登录后,比如在上面 https://github.com/TheMuppets/proprietary_vendor_sony
界面,点击“fork"后就可以在"Download ZIP"按钮上面复制下载链接地址:
git clone https://github.com/TheMuppets/proprietary_vendor_sony.git
device 和 kernel 目录类似。
另外,vendor目录参考CyanogenMod官方说法,还可以按照下面方法获取,但实际好像不全,仅供参考:
具体参考:http://wiki.cyanogenmod.org/w/Build_for_yuga#Download_the_source_code
首先保证你的手机USB连接电脑,可以adb root,然后在device/sony/yuga目录执行 $ ./extract-files.sh
正常情况下,或创建vendor/sony目录,然后从手机中拷贝相应的文件。
4. 编译源码:
source build/envsetup.sh 后执行 brunch yuga 就可以正常编译,如有编译错误,Google或者参考
上面CyanogenMod wiki链接,我这边比较顺利。
5. 最后下载:
可以sd卡升级 out/target/product/yuga/cm-11-20140820-UNOFFICIAL-yuga.zip