说明分为安卓源码(编译完毕有几百MB)和安卓内核源码(也就是linux源码编译完毕生成zImage只有几MB),
这里我们将android内核源码编译和运行,关于android源码请看我的另外一篇文章
一、环境
Ubuntu12.04 desktop 64位
二、下载源码并且编译
1、创建Android内核源代码路径
2、mkdir kernel
3、cd kernel
4、git clone https://android.googlesource.com/kernel/goldfish.git
5、cd goldfish
你可以ls –al发现有一个隐藏文件.git
6、git branch –a 查看有哪些版本
7、git checkoutremotes/origin/android-goldfish-2.6.29
会发现goldfish目录会有很多文件
8. cd kernel
9、git clone https://android.googlesource.com/platform/prebuilt 获得交叉编译环境
11 cd goldfish
12 export PATH=$PATH:~/android_kernel/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
13、编辑Makefile
#ARCH?= $(SUBARCH)
#CROSS_COMPILE?=
ARCH?= arm
CROSS_COMPILE?= arm-eabi-
arm-eabi-和#交叉编译工具链前缀一致
14、makegoldfish_armv7_defconfig 或者make goldfish_defconfig
$makegoldfish_armv7_defconfig指令的意思是将目录WORKING_DIRECTORY/kernel/goldfish/arch/arm/configs/下的goldfish_armv7_defconfig文件内的Kconfig配置内容复制到WORKING_DIRECTORY/kernel/goldfish/目录下的.config文件中,.config文件是一个隐藏目录,保存着各个目录下Kconfig文件的配置.
15、make
等待几分钟编译完成
成功以后会在arch/arm/boot/生成 zImage,我这里只有1.7MB,o(╯□╰)o
三、运行
用之前编译的android源码里面的模拟器运行
先导入环境变量,导入环境变量之后emulator和adb才能运行
source build/envsetup.sh
然后运行
emulator -kernel'/root/android_kernel/goldfish/arch/arm/boot/zImage' &
在设置里面查看
或者
adb shell
cd proc
cat version
察看版本,根据机器名和日期可以判断是否是刚刚编译成功的内核。
参考文章
非常好的教程
http://blog.csdn.net/flydream0/article/details/7070392
http://jileniao.net/linux-android-building.html
网友提供的下载地址
http://blog.csdn.net/jiangwei0910410003/article/details/37988637