前期准备
准备512及以上的固态硬盘,Android13源码下载和构建之后会占用接近300G空间,构建多个版本会占用更多
16GB及以上内存,32GB及以上swap空间,否则编译初期容易OOM,导致终端闪退
好的科学上网,没有的话可以使用国内镜像
下载步骤
- 安装依赖软件包
sudo apt install repo git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip libncurses5
- 创建一个文件夹,用于存储AOSP源码
mkdir ~/AOSP
cd ~/AOSP
- 配置git信息
git config --global user.name Your Name
git config --global user.email you@example.com
- 初始化Repo
repo init -u https://android.googlesource.com/platform/manifest
当然,如果没有科学上网,可以使用清华源:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
- 下载源码
repo sync
此处比较耗时,大概会下载接近100G,但会有进度提示,支持断点续传。所以可以随时退出,不用害怕下载进度丢失。
编译步骤
- 设置环境变量
source build/envsetup.sh
此添加是临时的,重新打开终端需要重设
- 选择编译目标 就是选择你编译的系统要运行在哪里,我是运行在PC模拟器上,所以可以输入:
lunch sdk_pc_x86_64-userdebug
此会编译一个运行在模拟器的PC版本(试过其它版本都不行)。也可以直接输入lunch,可以有列表提示让你选择:
eethu@neethu-Ubuntu:~/aosp$ lunch
You're building on Linux
Lunch menu .. Here are the common combinations:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_barbet-userdebug
4. aosp_bluejay-userdebug
5. aosp_bramble-userdebug
6. aosp_bramble_car-userdebug
7. aosp_car_arm-userdebug
8. aosp_car_arm64-userdebug
9. aosp_car_x86-userdebug
10. aosp_car_x86_64-userdebug
...
- 编译
m
也可以指定开启几个线程去编译,比如 m -j8。如果不设,会根据你的cpu核心数自动选择。编译过程很漫长,和你电脑的性能有关,大概1-3小时。
如果你看到如下,说明编译成功了:
#### build completed successfully (18:09 (mm:ss)) ####
编译后的产物输出在当前文件夹下的out/target/product目录中。
在模拟器上运行
只需一行命令:
emulator
现在,你可以对你的新系统为所欲为了。