天天看點

編譯Android核心

版權聲明:您好,轉載請留下本人部落格的位址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/47807089

首先需要知道自己android核心的版本,我們android系統是android 4.0.1,核心版本為2.6.29.

由于我們在下載下傳android源代碼的時候預設是不帶核心源碼的,因為他内置了一個編譯好的zImage核心鏡像,是以,如果要編譯核心源碼的時候,我們需要下載下傳我們目前版本的核心源碼.注意,這裡的核心源碼并不是Linux官網的核心源碼,而是谷歌定制的核心.

我們首先需要在android源代碼根目錄下建立一個kernel目錄.

mkdir kernel
cd kernel
git clone http://android.googlesource.com/kernel/goldfish.git           

這個需要等待一段時間,下載下傳完成之後,我們使用如下指令.

git branch -a
//找到自己需要的核心源碼版本
git checkout remotes/origin/android-goldfish-2.6.29           

好了,完成之後,我們就可以編譯我們的核心源代碼了.在編譯之前,我們需要修改一個核心源碼的根目錄下的Makefile檔案,也就是老羅提到的修改兩個部分:

ARCH            ?= arm
CROSS_COMPILE   ?=  arm-eabi-              

在make之前,我們需要将Android提供的交叉編譯鍊添加到我們的環境變量中,android提供的交叉編譯鍊在目錄

/prebuilt/linux-x86/toolchain 中.

下面我們使用下面的指令進行編譯:

export PATH=$PATH:~/android/prebuild/linux-x86/toolchain/arm-eabi-4.4.3/bin

//android2.3以下使用這個
make goldfish_defconfig
//android2.3以上使用這個
make goldfish_armv7_defconfig

//多線程編譯
make -j4            

等出現zImage生成成功,表示編譯完成.

最後,指定核心運作我們的虛拟機.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage            

如果想要在背景運作這個虛拟機來啟動adb的話,則需要在指令後面添加”&”.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage &           

繼續閱讀