背景
因为只有一台可怜的256G MBPR,并没有足够的空间去装一个Ubuntu,所以之前在10.10的时候尝试编译5.0未果后(各种版本问题),就无奈放弃了。
前几天在看最新的aosp官网介绍的时候,发现master和6.0.x的编译都使用了or later来描述对Mac OS的版本要求,就抱着试一试的心情开始了新的编译之旅。从下载到最后动车轰轰声中编译结束,也断断续续花了3天时间。
配置
OS X EL Capital 10.11.1
Java 1.7.0_79
Xcode 7.1.1 with command line tool
Zsh
过程
因为是给我的Nexus6编译image,所以分支上,我选择了6.0.0_r2进行编译,分支选择可以参照Source code tags and builds.
对于aosp被墙,尽管我们也能用vpn连接去下,但是其实国内是有aosp镜像的:科大镜像。
速度挺快,同步过程也比较稳定。
1 | # 实测build完后,需要60多个G,所以其实分配70G也绰绰有余了 |
然后是漫长的等待,内容会先下载到.repo里面,再解压出来,最后大致是37G左右。接着就可以开始我们的编译之旅了。
1 | source build/envsetup.sh |
你会发现报错了!!没错。。就是报错了1
2
3Install: out/target/product/hammerhead/root/res/images/charger/battery_scale.png
Install: out/target/product/hammerhead/fake_packages/charger_res_images-timestamp
make: *** No rule to make target `device/lge/hammerhead_fp-kernel/zImage-dtb', needed by `out/target/product/hammerhead/kernel'. Stop.
分析了一下。。发现是kernel的问题,但是官网压根没提到这个。好吧,我们来到Binaries for Nexus Devices, 选择自己机器和分支对应的driver, 我这里对应的是Nexus 6 (Mobile) binaries for Android 6.0.0 (MRA58N),3个都下载解压到目录后,分别运行三个extract开头的sh脚本,再次make,就顺利地build成功了。
最后,刷刷刷1
fastboot -w flashall