2. 初始化AOSP源码仓库

任务目标

在Ubuntu 22.04主机上完成AOSP源码仓库的初始化,包括:安装必要依赖、配置repo工具、创建并初始化工作目录、切换指定分支。最终通过repo sync验证仓库状态可用。

环境与依赖

  • 操作系统:Ubuntu 22.04 LTS(x86_64),磁盘剩余空间 ≥ 300GB,内存 ≥ 16GB
  • Python 3.8+ 与 Git 2.25+(系统预装即可)
  • 需安装包:git-core、gnupg、flex、bison、build-essential、zip、curl、zlib1g-dev、libc6-dev-i386、libncurses5-dev、lib32ncurses-dev、libx11-dev、lib32z1-dev、libgl1-mesa-dev、python3-pip、libssl-dev

初始化步骤

1. 安装依赖包

sudo apt update
sudo apt install -y git-core gnupg flex bison build-essential zip curl \
  zlib1g-dev libc6-dev-i386 libncurses5-dev lib32ncurses-dev \
  libx11-dev lib32z1-dev libgl1-mesa-dev python3-pip libssl-dev

2. 安装并配置 repo 工具

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo -o ~/bin/repo
chmod a+x ~/bin/repo
# 将 repo 加入 PATH(写入 ~/.bashrc 后 source 生效)
echo "export PATH=\$PATH:~/bin" >> ~/.bashrc
source ~/.bashrc

3. 创建并初始化工作目录

以 android-13.0.0_r41 分支为例(对应Pixel 6系列),执行以下命令:

mkdir -p ~/aosp
cd ~/aosp
repo init -u https://android.googlesource.com/platform/manifest \
  -b android-13.0.0_r41 --depth=1

若网络无法直接访问 android.googlesource.com,可使用镜像(如清华AOSP镜像):

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest \
  -b android-13.0.0_r41 --depth=1

4. 同步源码

repo sync -j8 -c

-j8 为并行任务数,建议不超过CPU核心数×2;-c 表示仅同步当前分支。

验证方法

初始化成功的判定标准如下:

  1. repo init 执行完毕后,~/aosp/.repo/manifests/ 目录存在,且包含 default.xml 文件;
  2. repo sync 正常结束且退出码为0,无 fatal 或 error 输出;
  3. 工作目录下出现 build/、art/、frameworks/ 等顶层目录;
  4. 执行 source build/envsetup.sh 后能识别 lunch 命令(仅验证环境脚本可加载,不要求完成编译)。

常见问题

  • repo: command not found:确认 ~/bin 已加入PATH,且 repo 文件具有执行权限。
  • SSL证书错误:执行 sudo apt install ca-certificates 后重试。
  • 磁盘空间不足:AOSP完整源码约200GB(含.git目录),使用 --depth=1 可减少约30%体积,但后续切换分支需重新获取历史。
  • 同步中断:直接重新执行 repo sync 即可断点续传,无需重新init。

初始化完成后,即可进入后续的环境配置与首次编译案例。