版權聲明:您好,轉載請留下本人部落格的位址,謝謝 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 &