gaojs@ubuntu:~$ mkdir ~/bin
gaojs@ubuntu:~$ cd ~/bin
gaojs@ubuntu:~/bin$ curl http://android.git.kernel.org/repo>~/bin/repo
curl: (7) couldn't connect to host
gaojs@ubuntu:~/bin$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
curl: (7) Failed to connect to 2404:6800:4005:c00::5d: Network is unreachable
替换成如下的命令即可:
gaojs@ubuntu:~/bin$ curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo
详见:http://php.webtutor.pl/en/2011/09/05/kernel-org-hacked-how-to-get-android-repo/
然后即可使用如下的命令,下载Android源码了:
gaojs@ubuntu:~/bin$ chmod 777 repo
gaojs@ubuntu:~/bin$ sudo cp repo /bin/
gaojs@ubuntu:~/bin$ mkdir android
gaojs@ubuntu:~/bin$ cd android
gaojs@ubuntu:~/bin/android$ repo init -u https://android.googlesource.com/platform/manifest
gaojs@ubuntu:~/bin/android$ repo sync
会报以下的错误:
fatal: '../platform/abi/cpp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Cannot fetch platform/abi/cpp
在.repo目录下的manifest.xml里找到fetch属性,改成:
fetch= "git://Android.git.linaro.org/"
然后,再执行repo sync命令!还会报错:
error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/manifest/info/refs
fatal: HTTP request failed
解决方法:
1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2. 点击网页上的“允许访问”,得到类似:
Login for Git:
Staying Authenticated - Linux and Mac OS X:
Staying Authenticated - Windows:
3. 把上面那段信息追加到~/.netrc文件结尾(请检查当前用户的权限, 如果不存在此文件则自己新建一个);
4. 下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。
5. repo init -u https://android.googlesource.com/a/platform/manifest
6. repo sync
真够曲折的!