直接進入正題 ,具體細節參見
在Ubuntu上下載、編譯和安裝Android最新源代碼 http://www.linuxidc.com/Linux/2011-06/37781.htm
我只是做一些補充說明:
1)下載android代碼
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
2)下載kernel代碼
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git checkout remotes/origin/android-goldfish-3.4 -b $LOCAL_KERNEL
3) 搭建編譯環境
64-bit:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
32-bit:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils xsltproc
4)編譯android源碼
a) Java SDK版本不符合,修改 build/core/main.mk
找到相應的 $(error stop) ,注釋起來 #$(error stop) ,這樣的地方有兩個
b)$ source build/envsetup.sh
$ make -j4
如果一切正常,將會生成android需要的幾個img文件
5)編譯kernel
a) 使用android-4.2.2的工具鏈
$ export PATH=XXX/android-4.2.2_r1.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
同時修改Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-eabi-
b) 配置內核,注意,這個地方有幾個配置文件可以選擇,我第一次用
arch/arm/configs/goldfish_defconfig 系統不能起來,後來選用了
arch/arm/configs/goldfish_armv7_defconfig 系統成功啟動,android的SDK中似乎也是用的這個配置文件
$ cp arch/arm/configs/goldfish_armv7_defconfig $KERNEL_ROOT
make goldfish_armv7_defconfig 會提示‘‘goldfish_armv7_defconfig’ is up to date,不予理會,采取下面的方式得到 .config的配置文件
$ cp goldfish_armv7_defconfig .config
c) make -j4
生成img文件在arch/arm/boot/zImage
6) 配置皮膚
系統默認的皮膚沒有按鍵,不好調試,我沒有發現系統中皮膚的目錄,所以下載android-4.2 SDK ,
利用裡面的皮膚來替換
7)運行模擬器,我寫了一個腳本,這樣比較方便
$ ./run_emulator.sh
內容如下:
#!/bin/sh
out/host/linux-x86/bin/emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img \
-skindir /home/ubuntu/tools/bundle/sdk/platforms/android-17/skins -skin WVGA800 \
-kernel /home/ubuntu/android/emulator-4.2/goldfish-3.4/arch/arm/boot/zImage
如果一切正常,你將可以看到自己定制的android系統啟動了,興奮吧!
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11