2. 初始化AOSP源码仓库
任务目标
本案例要求使用 repo 工具初始化 AOSP 源码仓库:下载指定分支的 manifest 文件,并验证 manifest 是否正确获取。源码同步(repo sync)涉及数十 GB 数据,不在本案例执行范围内,仅说明其调用方式。
环境准备
- Ubuntu 20.04+ 或 Debian 系系统(本例以 Ubuntu 为例)
- 已安装 Git 2.20+ 与 Python 3.8+
- 磁盘剩余空间建议 ≥ 200GB(仅 manifest 初始化需 < 100MB)
安装 repo 工具
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
# 将上述 export 追加到 ~/.bashrc 以便持久生效
初始化 AOSP 仓库
创建源码目录并执行 repo init。以下命令使用 android-14.0.0_r1 分支(AOSP 14 稳定版):
mkdir -p ~/aosp
cd ~/aosp
repo init -u https://android.googlesource.com/platform/manifest \
-b android-14.0.0_r1 \
--depth=1
参数说明:-u 指定 manifest 仓库地址;-b 指定分支;--depth=1 创建浅克隆,仅获取 manifest 仓库最新提交,显著减少下载量。
验证初始化结果
初始化完成后,检查以下内容确认 manifest 已正确获取:
cd ~/aosp
ls -la .repo/manifests/
cat .repo/manifest.xml
预期输出:.repo/manifests/ 目录包含 default.xml 文件;.repo/manifest.xml 是指向该文件的符号链接。执行 cat .repo/manifest.xml 应看到以 <manifest> 开头的 XML 内容,其中 <remote> 标签的 fetch 属性指向 https://android.googlesource.com/,<default> 标签的 revision 属性为 refs/tags/android-14.0.0_r1。
同步源码(可选)
确认 manifest 无误后,如需拉取全部源码,执行:
cd ~/aosp
repo sync -j8
该命令会按 manifest 中列出的全部项目下载源码,耗时与磁盘占用取决于所选分支。若仅需部分项目,可先修改 .repo/manifests/default.xml 中的 <project> 列表,或使用 repo sync <项目路径> 指定同步子集。
常见问题
- repo: command not found:确认
~/bin已加入 PATH,且 repo 文件具有执行权限。 - SSL 证书错误:若公司网络代理拦截证书,可临时设置
git config --global http.sslVerify false(仅建议在可信网络下使用)。 - Python 版本过低:repo 需要 Python 3.8+,检查
python3 --version。