编译 Android 系统源码 (AOSP)
☆ 1. 下载源码
由于众所周知的原因,国内访问 Android 源码不大方便, 清华大学做了一件好事, 弄了个 mirror。
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
下载 repo
Google 自己搞一个源码同步工具,需要下下载。
1 |
|
上面命令,下载 repo 并将 ~/bin 加入 PATH 环境变量
使用每月更新的初始化包
1 |
|
使用这个初始包的好处挺多,应该可以减少一些网络 IO
编译特定版本的 Android
1 |
|
其中版本号的对应关系可以从这个页面获得:
https://source.android.com/setup/start/build-numbers
下载对应设备的 Driver Binary
Pixel 2 就直接可以看这个 https://developers.google.com/android/drivers#walleye
目前最新的两个链接为:
- https://dl.google.com/dl/android/aosp/google_devices-walleye-pq2a.190305.002-78f45eb0.tgz
- https://dl.google.com/dl/android/aosp/qcom-walleye-pq2a.190305.002-a7c70412.tgz
将这两个文件在 aosp 根目录解压
1 |
|
将得到两个文件 extract-google_devices-walleye.sh
和 extract-qcom-walleye.sh
这两个文件为自解压文件,直接执行即可。
1 |
|
☆ 2. 编译源码
切换到 aosp 根目录
1 |
|
执行 lunch 可以看到支持的各种 build, 自行选择即可。
编译成功后,将在 out/target/product/walleye/
目录下生成镜像文件。
1 |
|
☆ 3. 注意事项
清华这个 mirror 是定时同步的,所以实时性并不好,如果遇到某个特定版本下载失败,
可以等待一段时间后,再重新执行同步命令。编译时需要的内存比较大,小内存可能导致编译失败,
另外,如果在虚拟机里编译的话,记得多设置几个CPU核,这样编译速度会快一些。
参考资料
编译 Android 系统源码 (AOSP)
https://usmacd.com/cn/compile_android_source_code/