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這個目錄下)指令可以使用編譯成功的核心鏡像檔案。