从29号早上8点多一直搞到30号凌晨4点,终于把下载Android系统源码的Connection timed out错误搞定,看着1M多的下载速度,心里那个爽啊,所以把下载过程写下来,给需要的同学参考一下
1、用户目录下创建一个文件夹来存放android目录,在终端下执行命令:
$mkdir android
$cd android
2、在android下创建bin目录,以执行其中的命令:
$mkdir bin
3、并将其加入到环境变量PATH中:
$PATH=~/android/bin:$PATH
4、进入bin目录,通过curl命令下载repo脚本:
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo
$chmod a+x repo
稍等片刻即可完成。
5、在android目录下建立存放android源码的目录source,并初始化:
$cd
$cd android
$mkdir source
$cd source
$repo init -u https://android.googlesource.com/platform/manifest
该命令会下载所有的版本,也可以对以上命令加上参数来指定下载某一部分的源码,例如:
$repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
如果之前的第3步略过了,这里需要将以上命令中的“repo”修改为“../bin/repo”以使终端可以识别repo命令。
6、之后会要求输入用户名和邮箱地址,可以随机输入。如果以后要向google递交bug,那么需要输入有效的google帐户。完成之后如果出现 “repo initialized in /home/taskiller/android/source”,则表示初始化完成,可以开始下载源码了。
7、还是在source目录下,输入命令 repo sync,下载源码。因为源码很大所以要下很久我的是平均1.5M/S的下载速度,不知道要多久。
我出错就是在这个地方每次同步都是连接超时,一看到Connection timed out我就很不爽,搞了一天,原来是下载的manifest.xml文件有个地方没有地址
原manifest.xml文件:
<remote
fetch=".."
review="https://android-review.googlesource.com/" />
修改后:
<remote
fetch="https://android-review.googlesource.com/"
review="https://android-review.googlesource.com/" />
manifest.xml文件应该知道在什么地方吧,什么?不知道?好吧,那我就说一下吧,如果你是按照我上面写的来创建文件夹的话,那就是在android/source/.repo/下,.repo是隐藏文件,你可以用两种方法来来让它显示
方法一、使用命令ls -a显示隐藏文件
方法二、在桌面化操作时,在文件夹下,按下ctrl+h,即可显示隐藏文件
8、接下来下载内核的源码,首先在android文件夹下创建kernel目录,之后进入到该目录中:
$ mkdir kernel
$cd kernel
然后就可以用以下命令来下载:
$git clone https://android.googlesource.com/kernel/common.git
$git clone https://android.googlesource.com/kernel/goldfish.git
$git clone https://android.googlesource.com/kernel/msm.git
$git clone https://android.googlesource.com/kernel/omap.git
$git clone https://android.googlesource.com/kernel/samsung.git
$git clone https://android.googlesource.com/kernel/tegra.git
内核下载是可以和源码下载同时进行的。内核源码比完整源码小得多,需要的时间少一点。因为文件是默认为隐藏的,所以下载完之后可以通过la -la查看。
读者也可参考官方网站:
更多Ubuntu相关信息见Ubuntu 专题页面 ?tid=2
更多Android相关信息见Android 专题页面 ?tid=11