如何编译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导致的。
阅读全文