进入kernel/common,这里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这可能需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android- goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。
root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel
//把服务器上的所有kernel都下载到本地kernel目录,想只下载一个版本的kernel是不可能的因为服务器上只有一个包含kernel的common.git文件,而没有单个版本kernel的.git文件
[root@localhost mydroid]#cd kernel
[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32
我们想要2.6.29内核,只要最后执行一下git checkout -b android-2.6.29 origin/android-2.6.29 把origin/archive/android-2.6.29
检出到本地android-2.6.29分支,至此就可以复制当前目录kernel里面的内核代码了,当然里面有一个隐藏的.git目录不要复制,那是用于管理版本代码的。
---------------------------------------------------
下面是其它作者的文章,对理解很有帮助:
使用git获取Android源码的时候一般需要使用repo脚本,但是使用repo脚本得到的源码并不带kernel内核的,所以如果需要下载kernel内核还必须使用git手动下载。。。
使用git的clone命令,把内核下载下来,到kernel文件夹
git clone git://android.git.kernel.org/kernel/common.git kernel
下载完之后,进入kernel文件夹,然后可以查看所有的分支,以及当前源码版本分支
在这里需要提一下的就是,git有本地的分支跟远程服务器分支两个概念,当clone整个common.git的时候,本地只有android-2.6.36这个分支的,
使用下面命令可以查看当前目录的本地分支
git branch
在哥电脑上面,已经下载了32和35的源代码,所以分支有三个,前面带星号是当前版本的分支
bing@bing-laptop:~/android/kernel$ git branch
android-2.6.32
android-2.6.35
* android-2.6.36
使用-a参数则显示本地和远程服务器的分支,并且远程服务器分支会加前缀"remotes/"
bing@bing-laptop:~/android/kernel$ git branch -a
android-2.6.32
android-2.6.35
* android-2.6.36
remotes/origin/HEAD -> origin/android-2.6.36
remotes/origin/android-2.6.35
remotes/origin/android-2.6.36
remotes/origin/android-2.6.37
remotes/origin/android-2.6.38
remotes/origin/android-2.6.39
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32
remotes/origin/archive/android-gldfish-2.6.29
remotes/origin/archive/android-goldfish-2.6.27
remotes/origin/linux-bcm43xx-2.6.39
remotes/origin/linux-wl12xx-2.6.39