参考: macOS 下载编译 aosp 源码
注意:编译环境还是挺重要的,我用了另一台mac (版本较新)去尝试编译(按上面的参考文章去解决问题),里面遇到的问题一 按同样的步骤不行,换了另一台电脑用同样的步骤就可以, 看来系统版本不同,影响大啊,深究不了。没啥办法的话,可以尝试一下linux方式去编译吧各位
internal error: Could not find a supported mac sdk: [“10.10” “10.11” “10.12” “10.13”]
ninja: build stopped: subcommand failed.
其他文章链接:
repo reset: error: Entry 'command.py' not uptodate. Cannot merge
源码版本支持查看
https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds
正文要开始了!!
一、亲测可行的编译环境:
1.系统:macOS Catalina 10.15.6
2.区分大小写、日志式的磁盘 (这边格式化了个移动硬盘,用于装源码)
3.xcode:11.3.1(按参考文章把10.13 版本的sdk 下载下来用)
4.aosp 目标编译平台:android-9.0.0_r1
其余一些小细节的环境可以参考 上面提到的文章
二、下载源码
以前也尝试过下源码去编译,不过源码都没下载成功过,这次又来挑战了,也是麻烦的要命,主要是没找对文章,还好这次成功了!
国外的太难下了,建议下 清华大学的镜像,参考:AOSP 镜像使用帮助
0、安装python3.7
1、下载repo 工具
2、在新文件夹下执行以下命令
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-9.0.0_r1
repo sync
三、构建源码
source build/envsetup.sh
lunch
make -j4
运行模拟器
如果刚刚编译完,直接执行 emulator 即可。否则需要重新执行 source build/envsetup.sh; lunch aosp_x86-eng; 导入 emulator 命令。
emulator
四、遇到的问题
参考上面参考文章中提到的问题,
1、10.13 sdk 的问题,要下载源码编译所需 的对应版本
2、libc++_static 库被重复引入
五、真机 pixel3 运行
编译出来肯定是想要在真机运行看看 是不是真的没问题的,实践才是真理啊,就在闲鱼买了台 洋垃圾,pixel3 ,便宜能用就行
为啥买pixel 3 ?
1.便宜
2.aosp 上比较新的分支 支持编译 pixel 3 (blueline)
3.因为要能好好运行,需要相应的驱动,pixel 的驱动,google 有提供下载,所以还是搞一台来好好研究吧
步骤:
1、源码中切换分支
Android 源码分支,支持设备查询
https://source.android.com/setup/start/build-numbers?hl=nb
repo init -b android-9.0.0_r11
repo sync
2、下载对应驱动
https://developers.google.com/android/drivers#blueline
下载两个驱动文件,并解压到源码目录下运行的到vender 文件夹
3、编译
make clean
source build/envsetup.sh
lunch aosp_blueline-userdebug
make -j8
4、刷写设备
设置环境变量 (另外解锁oem,解锁bl就不说了)
export ANDROID_PRODUCT_OUT=/Volumes/ziqstore/aosp_9/out/target/product/blueline
adb reboot bootloader
fastboot flashall -w