一、安装必备工具
sudo apt-get install curl python git
二、使用清华镜像源配置repo
mkdir ~/bincurl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repochmod a+x ~/bin/repovi ~/.bashrc# 在home目录下的.bashrc中追加如2条下配置PATH=~/bin:$PATHexport REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'#刷新配置,立即生效source ~/.bashrc
三、配置git信息
git config --global user.email "you@example.com"git config --global user.name "Your Name"
四、初始化仓库
mkdir aospcd aosprepo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r41 --depth=1
命令详解
repo init:
- 初始化一个新的 Repo 客户端。它用于设置当前工作目录的 Repo 仓库配置。
-u 参数(--manifest-url):
- 指定 manifest 仓库的 URL,这个仓库包含了所有项目的列表以及它们的分支和远程地址。
- 在这里,
https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest 是清华大学镜像站点提供的 AOSP(Android Open Source Project)清单仓库地址。
-b 参数(--manifest-branch):
- 指定要使用的 manifest 分支。
android-9.0.0_r9 是 Android 9(Pie)中一个具体的版本分支。该分支的清单定义了所有相关仓库的版本和内容。
--depth=1:
- 启用 浅克隆,只克隆指定分支的最新一次提交,而不是整个提交历史。
- 这可以显著减少下载数据的大小和时间,但代价是丢失了完整的提交历史。
- 适合仅需要源码而不需要完整的开发历史记录的场景。
--platform=auto:
- 自动检测当前操作系统的架构(如 x86_64 或 arm64)并配置相应的 Repo 环境。
- 它会根据你的操作系统选择最佳配置,确保 Repo 工具的正常运行。
五、同步源码
repo sync -c -j8 2>&1 | tee sync.log
命令拆解与解释
repo sync:
- 该命令用于同步代码库,根据
repo init 创建的工作环境(包括 .repo 目录中的 manifest 配置)下载或更新 AOSP 源码。 repo sync 会从远程仓库下载源码到本地。
-c:
-c 是 repo sync 的一个选项,表示只同步当前清单中指定的分支。- 如果未加此选项,
repo sync 会同步所有分支的代码历史记录,而加上 -c 则只会同步当前 manifest 文件中明确指定的分支,减少不必要的数据下载量。 - 适用于下载特定版本代码或减少磁盘空间和时间占用的场景。
-j8:
-j8 指定并行线程数为 8,允许同时运行 8 个线程进行下载。- 增加并行线程可以提高下载速度,但可能会占用更多的网络带宽和系统资源。
- 线程数可以根据 CPU 核心数和网络条件调整,比如:
- 单核机器可以使用
-j1。 - 高性能多核机器可以使用
-j16 或更高。
2>&1:
- 将标准错误输出(
stderr)重定向到标准输出(stdout)。 - 这样,
repo sync 命令的所有输出(包括错误信息)都会被合并到一起,便于记录和查看。
| tee sync.log:
tee 命令用于同时将标准输出的内容写入到文件(sync.log)并在终端中显示。- 具体作用:
- 在终端中实时查看同步进度。
- 同时将同步日志保存到文件
sync.log 中,以便后续分析和排查问题。