最新(2015.5.24)android4.0 x86源码下载过程(ubuntu下命令行运行XX-NETFQ,设置代理)
最近一直想从android-x86.org上下载android x86项目源码下来研究一下,但是由于网站被强,同样,google的网站也被强,导致使用repo下载的时候始终是unreachable network,网上看到一些下载android源码的博文,但是基本上都是n年之前的旧东西了,几乎没人介绍最新的下载方法。
我们知道网上包括android官方介绍的下载方法都是千篇一律,但是关键是现在下不了是网站被强了,所以我们首先需要做的其实就是FQ,在命令行下FQ成功了之后我们完全可以依照官方的步骤去下载了。
在这里我介绍一种我现在使用ok的方法,FQ工具使用的是XX-NET。关于XX-NET的使用在此我就不废话了,XX-NET其实是内部集成了goAgent,所以使用方法和goAgent一样。
以下是我的下载步骤:
1.配置goAgent,也就是XX-NET,包括Google的GAE,配置goAgent的客户端,这个大家网上搜一下,很多,我就不说了。配置好之后,就是运行XX-NET,
XX-NET下的文件目录如下:
albert@albert:~/Desktop/XX-Net-1.8.7$ ls APPID and PW.txt launcher README.md start.lnk SwitchySharp data php_proxy start.bat start.sh goagent python27 start.command start.vbs
然后我们运行目录下的start.sh,windows下运行的是start.vbs。
chmod a+x start.sh ./start.sh
那么goAgent就运行起来,如果是在浏览器下我们只是在浏览器上再装个proxy的插件启用goAgent的代理就ok了,但是我们现在是在ubuntu命令行下,那么我们可以直接修改系统环境变量HTTP_PROXY & HTTPS_PROXY就可以了。
export HTTP_PROXY=127.0.0.1:8087 export HTTPS_PROXY=127.0.0.1:8087
其中127.0.0.1:8087是goAgent代理服务器地址。这样就FQok了。
2.利用curl下载repo脚本
这一步最好是查看android官方网站downlod网页(http://source.android.com/source/downloading.html)内容,因为下载地址可能随着时间推移会变化,官方步骤如下:
To install Repo:
-
Make sure you have a bin/ directory in your home directory and that it is included in your path:
$ mkdir ~/bin
$ PATH=~/bin:$PATH -
Download the Repo tool and ensure that it is executable:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
做完第一步,我们在做第二步的时候需要修改一下,即用curl获取repo那一行命令改成以下形式:
curl -x 127.0.0.1:8087 https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
即增加红色部分,即代理服务器地址。
3.利用repo脚本下载源码
这个步骤就和官方一样了,因为我们FQ之后,就源码网站都能连上了。
follow this page to configure your build environment. Then
$ mkdir android-x86
$ cd android-x86
$ repo init -u http://git.android-x86.org/manifest -b $branch
$ repo sync
Where $branch is any branch name described in the previous section. This will point the projects created or modified by android-x86 to our git server. All the other projects still point to AOSP.
由于下载源码过程很漫长,防止自动下载时候因为断网之类原因下载失败,所以我们可以写一个循环repo sync的脚本去运行,发现同步失败便重新再执行repo sync即可。
#!/bin/bash echo "======start repo sync======" repo sync while [ $? = 1 ]; do echo "======sync failed, re-sync again======" sleep 3 repo sync done
这样的话基本上就没有什么问题了。