Android和Android Linux kernel源碼獲取

1 git和repo簡介

Git 是 Linux Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的分佈式版本控制軟件,它不同於Subversion、CVS這樣的集中式版本控制系統。在集中式版本控制系統中只有一個倉庫(repository),許多個工作目錄(working copy),而像Git這樣的分佈式版本控制系統中(其他主要的分佈式版本控制系統還有BitKeeperMercurialGNU ArchBazaarDarcsSVKMonotone等),每一個工作目錄都包含一個完整倉庫,它們可以支持離線工作,本地提交可以稍後提交到服務器上。分佈式系統理論上也比集中式的單服務器系統更健壯,單服務器系統一旦服務器出現問題整個系統就不能運行了,分佈式系統通常不會因爲一兩個節點而受到影響

因爲Android是由kernel、Dalvik、Bionic、prebuilt、build等多個Git項目組成,所以Android項目編寫了一個名爲Repo的Python的腳本來統一管理這些項目的倉庫,使得Git的使用更加簡單。

2 獲取源碼的工具安裝

(a)安裝git 和curl: 
apt-get install git-core curl

(b)安裝repo: 
創建存放repo目錄 
$ cd ~ 
$ mkdir bin 
$ export PATH=~/bin:$PATH

下載repo並改變權限 
$ curl http://android.git.kernel.org/repo >~/bin/repo 
$ chmod a+x ~/bin/repo

3 下載源碼

下載Android源碼 
$ mkdir mydroid 
$ cd mydroid 
$ repo init -u git://android.git.kernel.org/platform/manifest.git 
$ repo sync

下載Android Linux kernel源碼(具體見http://android.git.kernel.org/
git clone git://android.git.kernel.org/kernel/common.git(下載下來的內核源碼在common文件夾中)

獲得合適的內核源代碼
$ cd ~/android
獲得內核源代碼倉庫
$ git clone git://android.git.kernel.org/kernel/common.git   kernel
$ cd kernel
$ git branch
顯示
* android-2.6.27
說明你現在在android- 2.6.27這個分支上,也是kernel/common.git的默認主分支。
顯示所有head分支:
$ git branch -a
顯示
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我們選取最新的android-goldfish-2.6.29,其中goldfish是 android的模擬器模擬的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
顯示
android-2.6.27
* android-goldfish-2.6.29
我們已經工作在android-goldfish-2.6.29分支上了。

//注:如果過程中出現錯誤:fatal: Unable to look up  (port 9418) (Name or service not known),請檢查下Linux的網絡是否可用。我出現這個錯誤的時候是因爲無線網設置了IP和MAC綁定引起的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章