Android源代码树位于由Google创建维护的Git repository中。Git repository包括了Android源代码的元数据,包括哪些有关更改源和日期。本文描述了如何下载特定Android code-line的源代码树。
初始化Repo
Repo工具使得在Android环境中更加容易的使用Git。关于Repo更多的信息,看下Developing小节。
为了初始化Repo,
- 确保你的home文件夹中有一个bin/文件夹,并且被包含在你的路径中:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
- 下载Repo工具,并确保其具有可执行权限:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
For version 1.21, the SHA-1 checksum for repo is b8bd1804f432ecf1bab730949c82b93b0fc5fede
For version 1.22, the SHA-1 checksum for repo is da0514e484f74648a890c0467d61ca415379f791
For version 1.23, the SHA-1 checksum for repo is ac9d646f6d699f6822a6bc787d3e7338ae7ab6ed
初始化Repo客户端
安装Repo后,设置你的客户端来访问Android源代码repository,
- 创建一个空目录来保存你的工作文件。假如你使用MacOS,这是却分大小写的文件系统。给它任何你喜欢的名字:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
- 按照你的真实名字和邮件地址来配置git。为了使用Gerrit代码审查工具,你将需要一个可以连接Google账号的邮件地址。确保这是一个可用的邮件地址,并能够接收到消息。你在这提供的名字将会在代码提交时显示归属。
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
- 运行repo init来bring down 包含了最近bug修复的Repo最新版本。你必须为manifest文件指定一个URL,它将指定包含在Android 源代码中的各种repositories被放置在你的工作目录中。
$ repo init -u https://android.googlesource.com/platform/manifest
为了检出”master”以外的一个分支,需要使用-b 来指定,可以查看Source Code Tags and Builds.列出的分支清单。
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
国内下载源代码设置
官方的下载源在国内下载不是很稳定速度也很慢,可以尝试修改成国内的下载源,这里选择清华大学下载源。
下载Repo完成后,编辑~/bin/repo,将REPO_URL一行替换成:
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
使用下面命令为manifest文件指定一个URL,master:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
其他分支,以6.0版本为例:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r8
下载源代码
为了从默认manifest指定的repositories拉下Android源代码树倒你的工作文件夹中,需要运行:
$ repo sync
Android源代码文件位于你的工作下面他们的项目名字。初始化同步操作将会花费一个多小时时间才能完成。关于更多的repo sync和其他repo命令,可以看Developing小节。
other
刚下载下来的源代码占用空间很大(我下载的4.4.2大约45G),但其中源代码只有10+G,大部分空间都是Repo为了更新源代码添加的额外信息,进入源代码文件夹查看隐藏文件可以看到该文件夹:
如果不需要更新源代码,直接删掉,不会影响源代码编译。