由于防火墙问题,经常无法访问android.com。好在可以从国内的镜像获取android源代码。以下是我从中科大AOSP镜像获取android源代码以及中间遇到的一些问题的记录。
中科大AOSP镜像提供了使用说明: android镜像使用帮助
其中的步骤基本上是可以参考的。但我在开始时遇到了一个问题。
首先按帮助中的步骤下载repo工具:
curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo
此时查看下载下来的repo文件可以发现其中的REPO_URL已经指向中科大镜像的地址,因此应该不需要修改:
REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
接下来运行如下命令初始化仓库
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
发现没有反应,很长时间后应该是超时才退出,报错说无法访问https://gerrit-googlesource.lug.ustc.edu.cn/git-repo/clone.bundle
把这个地址放到浏览器上尝试发现也是超时无法访问,最后好像还是指到google的官网去了,感觉应该是因为缺了什么东西,没仔细研究。
但我发现中科大镜像的git-repo实际上是可以正常访问的,因此最后使用如下方法:
1. 使用git clone命令直接从中科大镜像下载repo工具:
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
git clone成功后可以在git-repo目录下看到repo以及其他相关的脚本。
修改PATH环境变量将git-repo目录加入PATH
2. 修改REPO_URL
此时查看git clone下来的repo文件可以发现其中的REPO_URL还是指向google官网的,因此需要修改该文件指向中科大镜像:
REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
3. 初始化仓库
修改完repo文件后再运行repo init命令初始化仓库就可以成功了:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
以后就可以使用repo sync命令同步源代码了,速度很快。