AOSP源码下载
Android的源代码位于由谷歌托管的Git仓库。
安装Repo
Repo是一款使android源码下载更容易的工具。
- 在你的home目录下面新建bin目录,并将该目录加到环境变量中。
mkdir ~/bin PATH=~/bin:$PATH
- 下载repo工具,并修改它的权限,使它是可执行的。
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
初始化Repo Client
安装好Repo之后,配置你的客户端,使其可以访问Android源码库。
- 用一个你喜欢的名字,新建一个空目录,用来存放你要下载的代码。
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
- 使用你注册的Google账号,在你的本机上配置git。这样可以使你访问google 的code-review系统。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
- 运行repo init命令下载最近进行了bugfix的新版Repo,这时你需要指定一个manifest的url,这个url包含了aosp各种版本的信息库。默认下载master分支,但是也可以指定分支。
repo init -u https://android.googlesource.com/platform/manifest
或
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
命令执行结束之后,在你的工作空间下或有一个.repo的目录,这时说明你已经初始化成功了。
下载Android源码
初始化完成之后,你就可以执行命令,根据你定义的manifest文件,来pull down android 源码。
repo sync
使用本地镜像
当使用多个客户,尤其是在带宽匮乏的情况下,最好创建整个服务器内容的本地镜像,并为客户从镜像同步(它不需要网络访问)。这样可以很好的减小带宽的压力,加快下载的速度。。
首先在执行repo init的时候使用–mirror,来建立本地镜像。
mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync
一旦本地镜像sync完毕,你就可以从镜像同步代码,这是只需要修改manifest的url就可以了。
mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync
最终,定期更新你的本地镜像和代码。
cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync
国内下载android源码
因为google在国内是被墙掉的,所以使用官方版下载是很难下载成功。不过还好,我们可以通过国内的镜像下载(科大源或清华源)。
方法一
参考Google官方教程或《同步android源码(官方版)》,将里面的url: https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 或 git://mirrors.ustc.edu.cn/aosp/ 代替即可。
方法二
修改本地的.gitconfig文件,在这个文件里面改变url指向。然后其他命令操作不变,继续执行。
[url "https://aosp.tuna.tsinghua.edu.cn/"]
insteadOf = https://android.googlesource.com/
或
[url "git://mirrors.ustc.edu.cn/aosp/"]
insteadOf = https://android.googlesource.com/
方法三
使用每月更新的初始化包
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar, 或 http://mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar 下载完成后记得根据 checksum.txt 的内容校验一下。
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。
使用方法如下:
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
或
wget http://mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间