
高通以及MTK平台内核单独编译ko的原理
这篇文章主要讨论了在Android项目开发中,如何进行内核模块(ko)的编译和打包到image中。文章首先介绍了ko编译原理,包括树外驱动和树内驱动的编译过程,并分别以高通平台和MTK平台为例进行了详细说明。 对于树外驱动,文章提到了高通平台中使用的ko编译模板`Build_external_kernelmodule.mk`,并解释了其核心指令`build_module.sh`的使用方法。同时,文章也提到了MTK平台的ko编译模板`build_ko.mk`,并指出了MTK项目中目前仍然使用make进行编译。 对于树内驱动,文章以高通平台为例,展示了如何使用bazel进行内核编译,并解释了相关指令的含义。同时,文章也提到了向内核编译时传递参数的方法。 接下来,文章讨论了ko如何打包到image中。文章指出,ko会被打包到`vendor_dlkm.img`中,并最终merge到`super.img`中。文章还介绍了如何通过`make vendor_dlkmimage`命令编译`vendor_dlkm.img`,并通过fastboot命令将其刷入设备。 最后,文章提醒读者注意,由于Android版本和kernel版本的变化,编译方式和产物路径可能会有所差异,因此本文仅供参考。