天天看點

Android核心源代碼下載下傳與編譯

Android源代碼預設是不保護好它使用的Linux核心的源代碼的,如果我們需要運作定制的Linux核心,就需要下載下傳它,并且對它進行編譯。

在我的環境裡已經下載下傳了一份Android的源代碼,該源代碼放在我建立的android目錄下,Android系統源代碼下載下傳參考:

http://blog.csdn.net/buaa3921/article/details/11180307

下載下傳Android核心源代碼,可以參考Android官網:http://source.android.com/source/building-kernels.html

1、放Android系統源代碼的目錄android下建立一個kernel目錄(指令:mkdir kernel),然後進入該目錄(指令:cd kernel)

2、輸入指令:(來自Android官網,這個指令不是唯一的,在官網上,有一堆的可以選擇下載下傳的核心)

3、輸入指令檢視支線代碼:

  git  branch -a

4、從上面指令執行成功之後的輸出選擇一個支線checkout,比如我可以輸入指令:

git checkout remotes/origin/android-goldfish-2.6.29 

(注意我下載下傳的是3開頭的版本,寫這篇部落格的時候忘了具體是3點幾的版本了,是以找了個2.6.29的來做示例)

接下來就是下載下傳android核心源代碼,下載下傳很快就會完成,之後就是編譯源代碼了,這裡建議看Android官網上的操作,一些指令我是我複制Android官網的,

有一點點的修改:

$ export ARCH=arm

$ export SUBARCH=arm

$ export CROSS_COMPILE=arm-eabi-

$ cd goldfish  (注意:這裡進入的是之前說的android/kernel目錄下的goldfish)

$ goldfish_armv7_defconfig(注意:官網上是make goldifsh_defconfig指令,我用官網上的這個命名編譯出來并且用

這個編譯後的zImage啟動模拟器時,會出現能啟動模拟器,但是顯示不了開機界面,用adb shell指令也連接配接不上的情況,

具體解決方法可以參看:http://blog.csdn.net/flydream0/article/details/7070392)

$ make

編譯成功後會在:/kernel/goldfish/arch/arm/boot目錄下生成一個zImage核心鏡像檔案。

運作emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage(注意:這裡的目前目錄是在android這個目錄下)指令可以使用編譯成功的核心鏡像檔案。