進入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