一、安装必备工具
sudo apt-get install curl python git
二、使用清华镜像源配置repo
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
vi ~/.bashrc
# 在home目录下的.bashrc中追加如2条下配置
PATH=~/bin:$PATH
export 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 aosp
cd aosp
repo 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
中,以便后续分析和排查问题。