为了学习Binder Driver的运行原理,必须分析其源码,这才发现下载的Android5.1 AOSP源码中居然没有kernel这个文件夹。搜了一下才知道,Android源码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核。(/prebuilts/qemu-kernel/[cpu架构]/kernel-qemu文件)
那去哪里找到kernel源码呢?
谷歌官方提供了一个在线的Android源码阅读网站,可以看到Android git仓库中的全部代码,上面有包含kernel的完整源码:https://android.googlesource.com/kernel/
我们可以看到,Android源码中提供了多种CPU的不同内核源码。如针对sdk模拟器的goldfish,三星的exynos(猎户座),高通的msm,联发科的mdiatek等。以下是这些内核的介绍:
goldfish 工程中包含为模拟器平台使用的内核源码。
msm 工程有可供 ADP1,ADP2,Nexus One,Nexus 4,Nexus 5,Nexus 6,也可以被当做一个起始点给 Qualcomm MSM 芯片组使用。
omap 工程被用于 PandaBoard 和 Galaxy N