之所以要编译android系统源码,原因在于最近在研究热修复技术,需要深入系统底层,调用系统so,引用系统头文件。整个过程折腾了两个星期才总算成功。下面我将列一下整个过程中遇到的问题。
首先要下载android内核源码,可以用repo,也可以下载离线源码包。
用repo下载可参考官网
http://source.android.com/source/downloading.html
repo sync可能需要很久,我是周五离开公司的时候开始sync,周一来的时候就OK了,大概几十G。
接下来得安装一些工具包。
首先安装jdk,我编译的内核是2.3的版本,必须用jdk1.6。
然后要安装如下工具包
sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev libxml2-utils
sudo apt-get install libwxgtk2.6-dev squashfs-tools build-essential
sudo apt-get install zlib1g-dev pngcrush schedtool ia32-libs libncurses5-dev
接下来就开始编译内核了,可参考官网
http://source.android.com/source/building.html
如果遇到错误了可参考这篇文章
http://blog.csdn.net/jiangwei0910410003/article/details/37988637/
或者google
内核编译完后就可以启动模拟器了
也可以在内核中加入自定义的模块,如果编译特定模块时找不到mmm,则到内核源码根目录,执行
. build/envsetup.sh,注意前面的点