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版本。