Android: Android源码下载方法详解分类:Android平台安卓源码下载地址:/source/downloading.html相信很多下载过内核的人都对这个很熟悉git clone git:///kernel/common.git kernel但是这是在以前,现在如果这么执行的话,会显示如下内容Initialized empty Git repository in /home/star/working/kernel/.git/[0: 149.20.4.77]: errno=Connection refusedfatal: unable to connect a socket (Connection refused)通过浏览器输入/,发现该网站已经被重定向为/source/downloading.html可以在该页面的最后发现内核的下载方法。
下面我们介绍一下Android源码下载的步骤。
工作环境:操作系统:Ubuntu 10.04 或Ubuntu10.10git程序:1.7.0.4 或1.7.1转载请注明出处:/pku_android方法一:1.1 初始化安装环境参考网页/source/initializing.html主要要做的就是安装jdk和安装一些软件包$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \libxml2-utils如果已经安装了,就不许要这步了1.2 无论下载内核和源码,都需要进行如下操作参考网页/source/downloading.html$ mkdir ~/bin$ PATH=~/bin:$PATH$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo如果出现: repo init error: could not verify the tag 'v1.12.7',执行下面的命令:curl /git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo建立一个文件夹,以便下载的内容保存其中$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY@@@ 以下可以脚本实现autogit.rar @@@1.3 内核下载$ git clone https:///kernel/common.git kernel命令行最后面的kernel的意思是保存在这个文件夹下,所以可以是任何名字,该文件夹不需要自己去创建,最后的这个不写也没问题如果想下载其他版本的内核$ git clone https:///kernel/goldfish.git$ git clone https:///kernel/msm.git$ git clone https:///kernel/omap.git$ git clone https:///kernel/samsung.git$ git clone https:///kernel/tegra.git下载过程中,会有如下信息,速度快慢取决于网速了。
Initialized empty Git repository in /home/star/kernel/kernel/.git/remote: Counting objects: 40, doneremote: Counting objects: 2073952, doneremote: Finding sources: 100% (208/208)remote: Getting sizes: 100% (88/88)remote: Compressing objects: 100% (2/2)remote: Total 2073863 (delta 1735363), reused 2073862 (delta 1735363)Receiving objects: 100% (2073863/2073863), 427.93 MiB | 318 KiB/s, done.Resolving deltas: 100% (1735382/1735382), done.在我下载的过程中,出现了如下问题error: RPC failed; result=56, HTTP code = 2002 MiB | 23 KiB/s到现在我也不清楚是由于什么原因导致的,猜测1.1中所说的事情,都做了吗?我发现有一些安装包尚未安装,安装之。
或者,可能是网络问题,重复执行一下,会发现并不是在同一个地方出现这个问题的,说不定哪次就成功了或者,用别人的电脑下载一下(虽然方法是我发现的,可是并不是我第一个下载成功的,我遇到了RPC failed,后来让同学尝试,成功,之后我也尝试了,在把所需要的安装包都安装后,也成功)1.4 更换内核版本由于在1.3中我写的是kernel,这是可以看到当前目录下出现了一个kernel文件夹$ cd kernel/$ ls发现没有任何内容查看当前内核版本,master,不知道是什么意思$ git branch* master查看所有可用内核版本$ git branch -a* masterremotes/origin/HEAD -> origin/masterremotes/origin/android-2.6.39remotes/origin/android-3.0remotes/origin/master可以看到目前只提供了少数的版本,只有2.6.39和3.0,比如我要下载2.6.39$ git checkout -b android-2.6.39 origin/android-2.6.39Switched to a new branch 'android-2.6.39'该命令的android-2.6.39指的是分支的名字,其实是可以随便取的,关键是origin/android-2.6.39,要对应git branch -a命令显示的remotes后面的内容完成后,查询当前分支$ git branch* android-2.6.39master$ lsarch Documentation init lib README soundblock drivers ipc MAINTAINERS REPORTING-BUGS toolsCOPYING firmware Kbuild Makefile samples usrCREDITS fs Kconfig mm scripts virtcrypto include kernel net security会看到突然出现很多文件夹,这就是内核了由于误操作比如$ git checkout -b android-2.6.39 origin/android-2.6.39,只是输入$ git checkout -bandroid-2.6.39,这时,会得到一个空的分支$ git branch -a* android-2.6.39masterremotes/origin/HEAD -> origin/masterremotes/origin/android-2.6.39remotes/origin/android-3.0remotes/origin/master如果再次执行$ git checkout -b android-2.6.39 origin/android-2.6.39fatal: git checkout: branch android-2.6.39 already exists一种方法,就是给把-b后面的android-2.6.39改为其他名字,但是这个有问题的分支android-2.6.39还是会存在的查看$ git branch --help,找到分支删除的命令$ git branch -D android-2.6.39error: Cannot delete the branch 'android-2.6.39' which you are currently on.需要切换分支,假设也存在android-3.0,当然也可以切换为master或者其他存在的分支,$ git branch -a查看分支$ git checkout android-3.0Checking out files: 100% (37131/37131), done.Switched to branch 'android-3.0'$ git branch -D android-2.6.39Deleted branch android-2.6.39 (was fe8bf45).方法二2.1 参考1.1和1.22.2 类似于下载Android源码的过程,先执行如下命令$ repo init -u https:///platform/manifest如果要下载指定版本:$ repo init -u https:///platform/manifest -b android-4.4_r1在这一步还需要用到gmail的邮箱备注:在下载Android源码的过程中,并不会下载kernel,那怎样才能既下载源码,又下载kernel 呢参考网页/Android_Kernel_Downloada kernel git tree并没有被默认的Android manifest file引用既然没有引用,那就加上它修改.repo/manifest.xml(目前的目录为1.2中已经建立的WORKING_DIRECTORY)$ vim .repo/manifest.xml加上这条语句<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>位置我觉得和其它的project选项并列即可。
版本号参考1.4,可能只能下载2.6.39和3.02.3 下载源码和内核reposync.rar$ repo sync漫长的等待~..~只下载内核如果我只想下载内核呢很简单,修改2.2提到的文件.repo/manifest.xml,把所有project标签都删除,再添加<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>编译环境的搭建首先若是没有修改源,请修改为国内的源,从而提高软件的下载安装的速度可以参考下面博客的内容添加一些速度快的源,如:台湾源、Ubuntu官方上海源、网易、搜狐、/houxn22/item/48f0f7d150657c16d80e4468安装编译所需的软件1、安装jdk官方推荐安装jdk1.6的,现在不支持命令安装了,只有Oracle官网下载,或者可以在本人百度网盘下面的地址中下载:/share/link?shareid=2263608836&uk=4278685087打开后选择jdk-6u45-linux-x64.bin。