如何编译Android OS源代码以构建自定义版本?
摘要:最近一段时间在编译Android 的source code的部分工作,网上的许多资料都废话太多,下面是我将其精简出来的版本。(我的编译环境是 ubuntu linux 12.04 64bit)首先需要安装一些依赖环境:(http:sou
最近一段时间在编译Android 的source code的部分工作,网上的许多资料都废话太多,下面是我将其精简出来的版本。
(我的编译环境是 ubuntu linux 12.04 64bit)
首先需要安装一些依赖环境:(http://source.android.com/source/initializing.html)
一、配置环境
根据我这种环境需要执行的命令有:
$ sudo apt-get install sun-java6-jdk
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
二、下载代码
有一下步骤:(http://source.android.com/source/downloading.html)
1、下载Repo
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
2、然后用Repo初始化仓库URL和branch
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
3、根据提示输入一些你的google账户等等
三、同步数据
这时候才是真正的下载代码数据的时候了,
我下载的时候这个仓库整个已经有20GB,花了整整一个晚上,因为用了国外代理所以速度还算比较快而且中间没有断开过。
$ repo sync
如果你在大陆因为网络的问题经常断开的话,建议写一个bash循环下载,因为它是支持断点续传的。
四、开始编译android
编译的过程其实还好,网上蛮多资料可查,我都是一步一步踏着前人的肩膀摸索过来的。
主要参考网址:http://source.android.com/source/building-running.html
下面附带一些编译时候常见出现的问题:
Error:
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 1
解决办法:
$ sudo apt-get install libc6-dev-i386
Error:
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决办法:
$ sudo apt-get install lib32z1-dev
Error:
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
解决办法
$ sudo apt-get install lib32ncurses5-dev
Error:
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
解决办法:
此处编译错误是由于ubuntu 12.04采用GCC4.6.1导致的。
