Android源代码默认不包含它所使用的Linux内核源代码
下载Android内核源代码
http://source.android.com/source/building-kernels.html
在这里可以看到所有的内核版本,使用git下载goldfish
下载完之后执行 git branch -a 命令列出内核源码的所有分支$ git clone https://android.googlesource.com/kernel/goldfish.git
sleeper@sleeper-VirtualBox:~/kernel/goldfish$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-3.10
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.10
remotes/origin/android-goldfish-3.4
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master
使用命令 $ git checkout remotes/origin/android-goldfish-3.10 导出3.10分支的源码
编译Android内核源代码
1.将交叉编译工具所在的目录添加到环境变量PATH中
$ export PATH=$PATH:~/android4.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
2.修改硬件配置文件goldfish_defconfig
$ sudo gedit ~/kernel/goldfish/Makefile # ARCH ?= (SUBARCH) # CROSS_COMPILE ?= ARCH ?= arm#体系结构为arm CROSS_COMPILE ?= arm-eabi-#交叉编译工具链前缀
3.执行make命令
Android 4.0用的arm版本是7
$ cd ~/kernel/goldfish $ make goldfish_armv7_defconfig $ make
如果arm版本是5则执行
$ cd ~/kernel/goldfish $ make goldfish_defconfig $ make
编译成功后,可以看到如下输出
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
运行Android模拟器
查看kernel版本$ emulator -kernel ~/kernel/goldfish/arch/arm/boot/zImage &
$ cd ~/android4.0 $ adb shell # cd proc # cat version