【参考链接】
Ubuntu12.0464位下,下载编译Android2.3源码
http://blog.163.com/zhou_411424/blog/static/1973621562012810631356/
自己动手编译Android源码(超详细)
http://www.jianshu.com/p/367f0886e62b
1.编译android-2.3.3需要使用gcc-4.4版本,先查看当前系统自带的GCC的版本,默认是4.6.3
gcc –v
故要先进行降级
apt-get install gcc-4.4
apt-get install g++-4.4
cd /usr/bin
mv gcc gcc-4.6.3.bak
ln -s gcc-4.4 gcc
mv g++ g++-4.6.bak
ln -s g++-4.4 g++
再查看gcc和g++版本号:
gcc -v
g++ -v
均显示4.4说明安装成功
2.然后还至少需安装如下软件
apt-get update
apt-get install
git-core gnupg flex bison gperf libsdl1.2-devlibesd0-dev libwxgtk2.6-dev
build-essential zip curl libncurses5-dev:i386zlib1g-dev x11proto-core-dev
libx11-dev libgl1-mesa-dev g++-multilib mingw32tofrodos python-markdown
libxml2-utils libgl1-mesa-dev tofrodos xsltproclibc6-dev-i386 g++-multilib
libreadline6-dev lib32readline6-dev ia32-libslib32stdc++6 lib32z1-dev
3.编辑frameworks/base/libs/utils/Android.mk文件,修改
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
在最后增加 -fpermissive(注意是短线)
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)-fpermissive
4.使命令行支持后续要使用的make指令,修改~/.bashrc,在最后添加下行
source /root/android-2.3.3_r1/build/envsetup.sh
source ~/.bashrc
5.开始编译
cd ~/android-2.3.3_r1
lunch full-eng
make
在编译的过程中可能会出现问题(基本上都是因为软件未安装),这个时候可以使用日志中如下样式的关键字去网上找解决办法
贴上我遇到的问题
hostExecutable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
g++:selected multilib '32' not installed
make:*** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1
apt-get install g++-4.4-multilib
collect2:ld returned 1 exit status
make:*** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
apt-get install lib32z1-dev
6.编译完成
编译完成以后,会在/out/target/product/generic目录下生成3个image文件
system.img,ramdisk.img,userdata.img
PATH=$PATH:~/android-2.3.3_r1/out/host/linux-x86/bin
exportANDROID_PRODUCT_OUT=~/android-2.3.3_r1/out/target/product/generic
更新
source ~/.bashrc
8.
启动模拟器
emulator
make systemimage
make userdataimage
make ramdisk
(网上也有资料说make snod可以快速编译,但是我这里实验的不行)