4. 初始化AOSP工作目录
任务目标
在开始AOSP源码编译前,需要先创建并初始化一个用于存放源码的工作目录。本案例将完成:创建标准目录结构、安装并配置repo工具、初始化repo客户端以拉取AOSP manifest清单。完成本案例后,你将拥有一个可随时执行repo sync同步源码的工作环境。
环境准备
本案例基于 Ubuntu 20.04+(或Debian系)环境,需要已安装git与curl。AOSP源码体积庞大(约100GB+),请确保磁盘剩余空间充足,并建议使用大小写敏感的文件系统(Linux默认即满足)。
实现步骤与代码
1. 创建标准目录结构
AOSP官方推荐将源码存放于~/aosp或/opt/aosp下。此处以~/aosp为例:
mkdir -p ~/aosp
cd ~/aosp
2. 安装repo工具
repo是Google基于Python开发的仓库管理工具,用于管理AOSP的数百个Git仓库。安装到用户目录即可,无需root权限:
# 下载repo脚本(使用国内镜像加速)
curl -sSL 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' -o ~/bin/repo
# 若~/bin不存在则先创建
mkdir -p ~/bin
# 赋予执行权限
chmod +x ~/bin/repo
# 将~/bin加入PATH(写入~/.bashrc永久生效)
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc
验证安装:
repo --version
预期输出包含repo版本号及Python版本信息。
3. 初始化repo客户端
在~/aosp目录下执行初始化命令,指定AOSP的manifest仓库。此处使用清华AOSP镜像(国内访问更快):
cd ~/aosp
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r3
参数说明:
-u:指定manifest仓库的Git地址-b:指定分支或标签,此处使用Android 13的稳定版tag
初始化过程中,repo会下载manifest仓库并创建.repo目录。若网络不稳定,可添加--depth=1参数做浅克隆以加速(注意:浅克隆后续同步时可能需额外参数)。
4. 验证初始化结果
初始化完成后,检查关键文件是否存在:
ls -la ~/aosp/.repo/manifests/
cat ~/aosp/.repo/manifest.xml
判定标准:
.repo/manifests/目录存在且包含default.xml等清单文件manifest.xml为指向manifests/default.xml的符号链接- 执行
repo info能显示当前manifest分支信息(输出中包含Manifest branch: android-13.0.0_r3)
常见问题
- curl下载repo失败:可尝试
sudo apt install repo(Ubuntu 22.04+仓库自带),或从https://gerrit.googlesource.com/git-repo直接下载。 - Python版本过低:repo需要Python 3.6+,检查
python3 --version,若版本过低请先升级。 - 初始化卡住或超时:多为网络问题,可切换镜像源(如中科大
https://mirrors.ustc.edu.cn/aosp/platform/manifest),或设置git config --global http.postBuffer 524288000后重试。
至此,AOSP工作目录初始化完成。下一步即可执行repo sync同步全部源码(该步骤耗时数小时,不在本案例范围内)。