当我们按照http://source.android.com/source/downloading.html下载完源码后,并没有看到linux kernel的源码,因而,需要单独下载,下载方法git clone http://android.googlesource.com/kernel/common.git。
在Android源码子目录下有许多.git文件,这代表整个源码是由许多git仓库组成的,repo只是管理这些仓库的工具,repo将这些仓库合并在一起,就构成了整个源码。这也是分布开发的一种模式。由于下载无法在浏览器直接直观的看到所有的仓库,但有个办法可以参考。打开
MSM/QSD Android Enablement Project
https://www.codeaurora.org/gitweb/quic/la/可以看到
kernel/common.git | 2 days ago | summary | shortlog | log | tree | ||
kernel/experimental.git | Experimental Kernel Projects | 7 months ago | summary | shortlog | log | tree | |
kernel/linux-2.6.git | Release | 2 months ago | summary | shortlog | log | tree | |
kernel/lk.git | 39 hours ago | summary | shortlog | log | tree | ||
kernel/msm.git | Kernel Tree for MSM/QSD family... | 25 hours ago | summary | shortlog | log | tree | |
kernel/omap.git | Release | 3 days ago | summary | shortlog | log | tree | |
kernel/samsung.git | Release | 7 days ago | summary | shortlog | log | tree | |
kernel/tegra.git | Release | 9 days ago | summary | shortlog | log | tree |
kernel/common.git | 2 days ago | summary | shortlog | log | tree |
执行完clone后,发现kernel目录下面除了.git目录外,没有任何文件。不要着急,git branch -a看看
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master
原来有这么多分支,再执行:git checkout --track -b android-2.6.39 origin/android-2.6.39,就可以看到该分支的kernel源码了!