android源码/内核下载

android学习第一步就是代码下载,由于android代码实在很大,也集成了相当多开源项目的成果,虽然google整理过,但下载十几个G的代码还是一件麻烦的事情。

请注意,android源码和kernel源码是分开下载的,如果你需要统一下载,需要修改repo下的文件。

下载如果遇到问题,可以参考android官方文档:http://source.android.com/source/downloading.html

1.源码下载

android是用git这个版本管理工具来管理的,google另外又写了repo这个工具来帮助使用。

1.1确保必要的工具已经安装了

$sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essential\

zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\

x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\

libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\

libxml2-utilsxsltproc

1.2下载repo脚本

$mkdir~/bin

$PATH=~/bin:$PATH

$curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo

$chmoda+x~/bin/repo

这样,repo就下载到当前用户的根目录的bin目录下面了,其中PATH=~/bin:$PATH这句是临时把~/bin这个路径添加到系统的PATH环境变量中,是为了方便后面的访问。

最后一句是赋予repo可执行属性,一般我都是用chmod777的

1.3创建repo的客户端

$mkdirWORKING_DIRECTORY

$cdWORKING_DIRECTORY

$repoinit-uhttps://android.googlesource.com/platform/manifest

最后一步会让你输入名字和email地址。

成功之后,在WORKING_DIRECTORY目录下会出现一个.repo目录,在./repo/manifests/default.xml这个文件中,记录了需要下载的所有project,如果你删除一些project,则会少下载一些;如果你增加一些,则会多下载一些——比如,你可以增加kernel的project进去,代码就可以和kernel一起下载。

指出一下,这样默认下载的是master分支下的代码,如果需要下载其他分支的,需要使用如下的命令来取代相应的命令:

$repoinit-uhttps://android.googlesource.com/platform/manifest-bandroid-4.0.1_r1

1.4下载代码

$reposync

代码下载大概十几个G,所以需要很长时间,这个就取决于网速了。另外,由于种种不可抗力,google的这个地址常常被封掉,需要想办法绕过。你可以找一个代理,也可以找一个有专线可以下载的地方(很多大型外企有这个条件)。

2.kernel下载

内核的下载不需要repo这个工具,仅仅使用git的clone命令就可以了,不过一样面临地址被封需要绕过的问题。kernel代码大概600多M,比较小一点。

$gitclonehttps://android.googlesource.com/kernel/common.gitkernel

命令行最后面的kernel的意思是保存在这个文件夹下,所以可以自行命名,系统会帮你创建出来的

当然,还有其他的内核可以下载,从字面上看,msm应该是针对高通芯片的,omap是针对TI芯片的,samsung是针对三星芯片,tegra则是nVidia公司的芯片。

$gitclonehttps://android.googlesource.com/kernel/goldfish.git

$gitclonehttps://android.googlesource.com/kernel/msm.git

$gitclonehttps://android.googlesource.com/kernel/omap.git

$gitclonehttps://android.googlesource.com/kernel/samsung.git

$gitclonehttps://android.googlesource.com/kernel/tegra.git

下载完了之后可以用ls命令看一下,是不是kernel没看到任何代码?试着运行一下git的列出分支命令

$gitbranch-a,你会看到一系列分支,其中打*的分支是当前分支(刚下载完就是master啦),这个时候你切换一下分支,切换到你想要的分支代码就会出现了,我使用的是remotes/origin/android-2.6.39分支

最后一点,如果需要代码和kernel同时下载,在./repo/manifests/default.xml文件中增加如下语句:

<projectpath="kernel/common"name="kernel/common"revision="android-2.6.39"/>

转自:http://blog.csdn.net/sakulafly/article/details/8466702

相关推荐