Android4.0.1 模擬器核心 最新下載地址及編譯步驟

來源:互聯網
上載者:User

Android 4.0.1已經放出來了,但是其模擬器核心是先行編譯的bianry。沒有提供核心原始碼。 想自己編譯一個核心,這樣子可以改核心代碼完,可是找了網上的資料,發現都已經過時了。 本文提供最新的 地址和方法。

由於android kernel的部分封閉策略,kernel org已經將 android kernel踢出主線。原有的 同步地址已經被重新導向,再加上android kernel本身結構的調整,很多原來的同步方法已經不能使用。 下面是最新的方法,適用於編譯 android 4.0.1 模擬器的核心 ( qemu kernel, goldfish branch)。

原有的方法大多使用一下地址同步 android goldfish kernel:

$ git clone git://android.git.kernel.org/kernel/common.git$ cd common$ git branch -a$git checkout remotes/origin/archive/android-gldfish-2.6.29

但是我們可以在 瀏覽器裡輸入

android.git.kernel.org/kernel/common.git

它實際上已經被重新導向到

android.googlesource.com/kernel/common.git

但是這個repo 裡已經不包含 goldfish的分支了。如果同步下來後我們用 git branch -a 將看到只有最新的 3.0 和2.6.39的分支:

$git branch -a* (no branch)  master  remotes/origin/HEAD -> origin/master  remotes/origin/android-2.6.39  remotes/origin/android-3.0  remotes/origin/master

其實 goldfish分支已經被獨立為一個單獨的repo:http://android.googlesource.com/kernel/goldfish.git

以下是最新的正確的 同步步驟:

$git clone http://android.googlesource.com/kernel/goldfish.git$cd goldfish$git branch -a* (no branch)  master  remotes/origin/HEAD -> origin/master  remotes/origin/android-goldfish-2.6.29  remotes/origin/master$git checkout 
remotes/origin/android-goldfish-2.6.29

編譯步驟基本沒有變,但需要使用新的config:

$ make ARCH=arm goldfish_armv7_defconfig$make ARCH=arm CROSS_COMPILE=arm-eabi- ...OBJCOPY arch/arm/boot/zImage  Kernel: arch/arm/boot/zImage is ready

然後就可以用著新的kernel img 來啟動模擬器了:

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

啟動模擬器,到 Setting => About 去看,kernel的確編程我們自己編譯的版本。 可以手工了。

另外,Google 似乎有意提供一個簡單指令碼來編譯 kernel,可以看看 external/qemu/docs/ANDROID-KERNEL.TXT 有提到那個 distrib/rebuild-kernel.sh.

但搜尋後這個檔案並不存在。最接近的兩個指令碼是 prebuild/android-arm/kernel/rebuild.sh.

但是這個指令碼明顯的是個半成品,--help裡的資訊和指令碼的實現還是有出去的。正確的用法是:

$cd ics/platform  ( your $TOP)$prebuild/android-arm/kernel/rebuild.sh kernel/goldfish/   (剛才同步的goldfish kernel 目錄)

編譯可以順利完成,並且產生的新的kernel 會被自動拷貝到 prebuild/android-arm/kernel 裡去。但是如果不指定 kernel img 啟動,發現用的還是原來內建的的img。
還是需要再啟動 emulator是 用 -kernel 參數 顯式的指定編譯出來的img:

這樣子的話,google提供的這個指令碼根本就是雞肋了...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.