偶在公司和家里都试了,总是无法获取到 Android 的源代码 。提示如下:
xxx@ubuntu:~/AndroidSource$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.6_r1
error: Failed connect to android.googlesource.com:443; Operation now in progress while accessing https://android.googlesource.com/platform/manifest/info/refs
fatal: HTTP request failed
error: Failed connect to android.googlesource.com:443; Operation now in progress while accessing https://android.googlesource.com/platform/manifest/info/refs
fatal: HTTP request failed
fatal: cannot obtain manifest https://android.googlesource.com/platform/manifest
方法如下:
建议先编辑 /etc/hosts 文件
sudo gedit /etc/hosts host 文件
添加内容:
74.125.237.1 dl-ssl.google.com
74.125.203.82 www.googlesource.com
74.125.203.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com
如果使用 vim 可能无法保存。
注:
google source 的 ip 是会改动的,那我们如何知道当前真实的ip,看了一下google known-issues,具体方法如下:
使用命令:
$ nslookup googlesource.com
$ nslookup android.googlesource.com
例如,执行 nslookup googlesource.com,输出为:
on-authoritative answer:
Name: googlesource.com
Address: 173.194.72.82
(1) 安装两个软件
$ sudo apt-get install curl
$ sudo apt-get install git-core
(2) 创建一个~/bin目录,并添加到环境变量中
$ mkdir ~/bin
$ PATH=~/bin:$PATH
(3) 下载repo脚本并修改权限为可执行
http://git-repo.googlecode.com/files/repo-1.14
$ curl http://git-repo.googlecode.com/files/repo-1.14 > ~/bin/repo
$ chmod a+x ~/bin/repo
如果不先修改 hosts 文件,则可能出现如下错误:
curl: (7) Failed to connect to 2404:6800:4008:c04::52: 网络不可达
(4) 创建一个保存android源码的目录,修改为最大权限,并进入该目录
$ mkdir /opt/android4.4
$ sudo chmod –R 777 /opt/android4.4
$ cd /opt/android4.4
leozheng@ubuntu:~$ mkdir /opt/android4.4
mkdir: 无法创建目录”/opt/android4.4″: 权限不够
mkdir AndroidSource // 不在 opt 目录下创建
(5) 初始化repo,并选择要下载的分支
$ repo init -u https://android.googlesource.com/platform/manifest
这时需要输入你的姓名和邮箱。
这一步需要的时间比较长。我试的时候,第一次出现错误;第二次等了大概有 10 分钟才开始。得到的是一个版本列表,所以最好是指定版本下载。
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.6_r1 // 下载 android-2.3.6_r1 android-2.3.6_r1
如果需要下载其他分支将android-2.3.6_r1 改成其他分支名称就可以了。
分支名称请在 https://android.googlesource.com/platform/manifest/info/refs 里面查看branch
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
可能出现如下错误:
Get https://code.google.com/p/git-repo/
error: RPC failed; result=7, HTTP code = 0
(6) 开始下载源码
$ repo sync