1. 搭建AOSP源码编译环境
任务目标
在Ubuntu 20.04/22.04 x86_64主机上,完成AOSP(Android Open Source Project)编译环境的搭建:安装JDK、必要依赖包,并同步指定版本的Android源码(以android-13.0.0_r3为例)。最终验证环境可用性。
环境与依赖
- 操作系统:Ubuntu 20.04或22.04(x86_64),建议至少16GB RAM、200GB可用磁盘空间
- Python:3.8~3.10(Ubuntu 20.04自带3.8,22.04自带3.10,均满足要求)
- Git:1.7.2以上版本
- JDK:AOSP 13使用OpenJDK 11(不需要单独安装,编译时会自动使用源码树中的预编译JDK,但需确保系统无冲突JDK)
实现步骤
1. 安装依赖包
执行以下命令安装AOSP编译所需的全部系统依赖:
sudo apt update
sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev \
libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev \
libxml2-utils xsltproc unzip fontconfig python3 python3-venv libssl-dev \
libncurses5-dev libncursesw5-dev openjdk-11-jdk
2. 安装Repo工具
Repo是AOSP源码管理工具,安装到用户目录:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
echo 'export PATH=~/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
3. 同步AOSP源码
创建源码目录并初始化指定版本(android-13.0.0_r3):
mkdir -p ~/aosp
cd ~/aosp
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r3
repo sync -j8 -c
-j8为并行任务数,可根据CPU核数调整;-c表示仅同步当前分支。同步完成后源码位于~/aosp目录。
4. 验证环境
进入源码目录,执行环境设置脚本并检查编译所需变量:
cd ~/aosp
source build/envsetup.sh
lunch aosp_x86_64-eng
若环境配置正确,lunch命令会输出类似============================================的配置信息,并提示选择的产品配置已生效。
验证方法与通过条件
- 依赖检查:执行
java -version应显示OpenJDK 11;python3 --version应显示3.8~3.10。 - Repo检查:执行
repo --version应输出版本号,无报错。 - 源码完整性:
ls ~/aosp/build/envsetup.sh文件存在;du -sh ~/aosp显示源码体积约30GB以上(不同版本略有差异)。 - 环境加载:执行
source build/envsetup.sh无报错,lunch aosp_x86_64-eng能正常输出产品配置信息。
以上条件全部满足,即判定AOSP编译环境搭建成功,可进入后续编译流程。
常见问题
- 磁盘空间不足:AOSP 13完整源码约需200GB(含编译输出),建议使用独立分区或软链接将源码目录指向大容量磁盘。
- repo同步中断:网络不稳定时,重新执行
repo sync -j4 -c即可断点续传。 - Python版本冲突:若系统默认Python版本高于3.10,需使用
update-alternatives切换至3.8~3.10版本。