一、安装必备工具
- 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中,以便后续分析和排查问题。