展锐平台 android12 发现在kernel里面加的log,编boot.imag之后不生效了。如果这样的话我们改一下驱动就需要重新编个整版本。安卓编译一次几次小时。这样就效率很低。之前android 11可以
这是因为android12平台添加的代码都ko化了 不在boot里了
方法如下:
1.只修改了驱动源码且编译出的ko 打包到vendor_dlkm 分区,可以采用push ko 的debug 方式。
编译方法:− 确保sync 代码与编pac 包的代码一致(按照manifest 更新代码)
− 修改驱动
− make superimage
采用push ko的方法来验证
Ko的路径 vendor_dlkm/lib/modlues
adb push xxx.ko vendor_dlkm/lib/modlues

2.只修改了驱动,且打包到vendor_boot 分区
− 确保sync 代码与编pac 包的代码一致(按照manifest 更新代码)
− 修改驱动
− make vendorbootimage
− 需要烧写替换vendor_boot.img

至于打包到哪个分区去查看 alps\device\sprd\mpool\module\bsp\mfeature\kernel\kernel5.4\msoc\qogirl6\ko\ko.mk

.c对应的 ko通过哪个宏来打包的

BOOT_KERNEL_MODULES:
配置打包哪些ko 到vendor_ramdisk,供normal 启动模式在first stage init 阶段加载使用。
 RECOVERY_KERNEL_MODULES:
配置打包哪些ko 到vendor_ramdisk,供recovery 启动模式加载使用。
 BOARD_VENDOR_KERNEL_MODULES:
配置打包哪些ko 到vendor_dlkm,供normal 启动模式在second stage init 阶段加载使用。

例如,修改hook.c之后 需要 编译 make superimage
然后 push snd-soc-sprd-card.ko 到手机目录vendor_dlkm/lib/modlues下 (像push so一样)
这样的话编译ko一般就10来分钟。然后就可以验证了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐