在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源码。
1. 安装curl 与 git
sudo apt-get install curl
sudo apt-get install git-core
2 安装 Repo
a) 建立Repo的安装目录、配置环境变量
$ mkdir ~/bin
$ PATH=~/bin:$PATH
b) 获取Repo工具
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
问题:上面是Google制定的repo获取地址,但获取可能失败。
解决办法:网上有网友给出了替代的获取地址,如遇报错可用下面的地址替代:
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo (我是使用这个,可用)
然后改变权限:
$ chmod a+x ~/bin/repo
3 建立并进入源码下载目录
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
4 初始化源码Repo下载地址
如是下载当前最新的代码,则:
repo init -u https://android.googlesource.com/platform/manifest
如是下载特定Android成熟版本分支的代码,则加上-b 参数,如当前最新发布的android 4.4分支代码:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.1_r1
命令如顺利执行,期间将要求输入unsername和email,直接输入自己的自定义的用户名和email即可。
5 同步全套源代码
$ 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
解决办法:
进入WORKING_DIRECTORY,显示隐藏文件,可看到.repo目录并打开manifest.xml里,找到fetch属性,并修改为:
fetch= "git://Android.git.linaro.org
repo sync命令在执行过程中一般不会一次性成功,中途可能超时或存在其他失败,此时只需再次执行repo sync即可,以前的记录会被缓存的。
参考文档:http://blog.csdn.net/droidpioneer/article/details/24738353
如果遇到如下问题:
error: RPC failed; result=56, HTTP code = 200B
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
warning: https unexpectedly said: '0000'
error: Cannot fetch platform/external/qemu ===========solution:==========================
[plain]
解决方案:
(http://source.android.com/source/downloading.html)有段说明,如果认真执行就可解决。
1. 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2. 点击网页上的“允许访问”,得到类似:
[plain]
1. machine android.googlesource.com login git-<userName>.gmail.com password <password>
2. machine android-review.googlesource.com login git-<userName>.gmail.com password <password>
的信息。
3. 把上面那段信息(<userName>和<password>用自己得到的真实信息)追加到~/.netrc文件结尾;
4. 下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。
然后按照官网描述的正常步骤操作,即可拉下Android源码。
官方的说法是:因为访问基本是匿名的,为了防止连接过多,对同一IP地址的连接数做了一定的限制。看来是用gmail帐号进行认证。 www.2cto.com
这样的话,在公司网络内或者用虚拟机下载的话,会经常遇到这问题。