由于工作的需要,要使用android4.3的源码,那么就在网上下载了,以下为总结的一些问题和步骤,注意一点,android4.3的源码是需要在linux 64bit系统下编译的,不然会报错误的,到时候再换版本很头疼的!
1下载环境
源代码的下载,首先需要安装以下工具软件:curl 和 git-core
1.1安装curl:
打开终端,可以使用按Ctrl+Alt +T的快捷方式打开终端
在终端中执行命令:sudo apt-get install curl
1.2安装git-core
sudoapt-get install git-core gnupg
1.3安装repo
1)
$ mkdir ~/bin
$ PATH=~/bin:$PATH
2)
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~/bin/repo
$ chmod a+x ~/bin/repo
or(if err: curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo)
2下载源码
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
初始 repo
用repo/git下载源码时,执行
$ repo init -u https://android.googlesource.com/platform/manifest-b android-4.3_r2.1
3遇到问题解决办法
1)执行$ repo init -uhttps://android.googlesource.com/platform/manifest -b android-4.3_r2.1会报错误 异常为
error: The requested URL returnederror: 406 while accessinghttps://android.googlesource.com/platform/cts/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/cts
error: Failed to connect to 2404:6800:4008:c01::52: Network is unreachablewhile accessinghttps://android.googlesource.com/platform/external/bzip2/info/refs
fatal: HTTP request failed
error: Failed to connect to 2404:6800:4008:c01::52: Network is unreachablewhile accessinghttps://android.googlesource.com/platform/external/checkpolicy/info/refs
fatal: HTTP request failed
解决方法
1) 浏览器登录https://android.googlesource.com/new-password,并用gmail帐号登录;
2)点击网页上的“允许访问”,得到类似
machine android.googlesource.com login git-jacky.rg4.net password 1/dkRiGEvvC8o8Pgg-GsM2AbMNS_32-U0Pf0_VWkYogIA machine android-review.googlesource.com login git-jacky.rg4.net password 1/dkRiGEvvC8o8Pgg-GsM2AbMNS_32-U0Pf0_VWkYogIA
我的帐号是
(machineandroid.googlesource.com login git-moonlight7211.gmail.com password1/19QbJ0cMSNbKhvm8TtQseUXUR7HbPcPuYPM9G1U_LP8
machineandroid-review.googlesource.com login git-moonlight7211.gmail.com password1/19QbJ0cMSNbKhvm8TtQseUXUR7HbPcPuYPM9G1U_LP8)
3)把上面那段信息追加到~/.netrc文件结尾(请检查当前用户的权限, 如果不存在此文件则自己新建一个);
4)下载地址的URI更改为https://android.googlesource.com/a/platform/manifest(中间加上了“/a”)。
5) ~/bin/repo init -uhttps://android.googlesource.com/a/platform/manifest -bandroid-4.0.3_r1 -b android-4.3_r2.1
6)repo sync
即可拉下Android源码。这时在WORKING_DIRECTORY下会生成一个 .repo的文件夹,如果之前这个文件夹已经存在,先删掉它
2)在下载过程中我试了很多次都会错误
fatal: '../platform/abi/cpp.git'does not appear to be a git repository
fatal: The remote end hung upunexpectedly
error: Cannot fetchplatform/abi/cpp
找到以前的一个文档,发现加上一句话就可以了:在.repo目录下的manifest.xml里找到fetch属性改成 fetch="git://Android.git.linaro.org/ ",开始下载了直接使用命令
$ repo sync
6,开始同步源码
按理说在repoinit ....之 后使用repo sync就可以开始下载源码了,但是在下载过程中经常会出现没网速“死”的情况。当然,我修改了/etc/hosts文件之后就再也么有死过。在没网速提 示连接不上时,可以按ctrl+z按键来暂停同步,然后再输入repo sync就可以了。但尽管这样也不太方便,比如大半夜的谁会守着电脑监督下载情况,源码貌似都要一夜才下好,汗。为此,可以参考http://www.rosoo.net/a/201302/16503.html 在工作目录,我的是~/document/androidSource文件夹下新建一个download.sh脚本文件,里面的内容是:
#!/bin/bash
echo "======start repo sync======"
repo sync
while [ $? == 1 ]; do
echo "======sync failed, re-sync again======"
sleep 3
repo sync
done
chomd a+x download.sh让其可以运行,然后终端输入./download.sh就可以开始下载了,用这一步代替官方文档里的repo sync
当连接不上终端时休息3毫秒然后再自动repo sync,这样就很完美了。
7,下载的源码在哪里
在工作目录~/document/androidSource文件夹下,输入命令 ls -a,可以看到有个.repo文件夹。很显示这是个隐藏文件夹,进去这个目录后查看结果如下:
1. administrator@ubuntu:~/document/androidSource/.repo$ ls
2. manifests manifests.git manifest.xml projects repo
里面的projects文件夹即是下载的源码.