在Ubuntu 12.04上下载Android4.2源码
下载过程分为以下几个步骤
1、安装curl
在终端中执行 sudo apt-get install curl
2、创建一个~/bin目录,并添加到环境变量中
$ mkdir ~/bin
$ PATH=~/bin:$PATH
3、下载repo脚本并修改权限为可执行
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x~/bin/repo
4、创建一个保存android源码的目录,修改为最大权限(这个是我自己增加的一个操作,怕以后操作权限不足等麻烦),并进入到该目录下
$ mkdir /opt/android_source
$ sudo chmod –R 777 /opt/android_source
$ cd /opt/android_source
5、初始化repo,并选择要下载的分支(版本)
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest-b android-4.2_r1
备注:在这过程中需要输入你的姓名、邮箱等信息。感觉只要输入就可以了,我输入了一个随意名称,我自己的126邮箱
6、开始下载源码
$ repo sync
正常情况下,上面就是下载android4.2源码的流程,但我在下载的过程中遇到了下面问题
问题1:“A new repo command ( 1.18) is available.”
其实这个问题就是说你本地的repo版本不是1.18,比这个旧,在出现这个的时候,下面会有一个提示你怎么操作的,如:
… A new repo command ( 1.18) is available.
… You should upgrade soon:
cp /home/pn/android/.repo/repo/repo/home/pn/bin/repo(执行这一句就可以),开始我苦悲的上网找这个的解决方法,,,,浪费不少时间。。
问题2:“error: Exited sync due to fetch errors…”
这个问题,网上都说是需要IP认证,其中我也根据
http://blog.csdn.net/fantao015/article/details/7625559
上面的操作,执行了一遍,其中包括注册了一个@gmail.com邮件,后面发现我没有用到这个也全部下载成功了。
问题3:经常提示
error: Failed connect to android.googlesource.com:443;Connection refused while accessinghttps://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
等错误信息。
解决方法:编辑/etc/hosts文件
$ vim /etc/hosts
增加下面内容,保存
74.125.71.82 www.googlesource.com
74.125.71.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173cache.pack.google.com
然后重新输入
$ repo sync
这个关于DNS解析,提示了访问成功率,有兴趣的童鞋可以研究下。。哎,如果早找到该操作,就节省了我不错时间。
更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11