Android Kernel user版本和userdebug版本编译区别

最近调试红外发射接收功能时遇到user版本和userdebug版本的区别,debug版本调试验证时一直ok,编译出的user版本刷了几台机器后有的机器正常,有的机器开机后红外灯一直常亮,功能不正常。跟踪发现是user版本在编译kernel时与debug版本配置文件不同,里面的宏有许多不同。

在android\device\qcom\sdm660_64\AndroidBoard.mk文件中可以看到以下代码:

ifeq ($(KERNEL_DEFCONFIG),)  

ifeq ($(TARGET_BUILD_VARIANT),user) 

  KERNEL_DEFCONFIG := sdm660-perf_defconfig 

else

    KERNEL_DEFCONFIG := sdm660_defconfig 

endif

endif


通过代码比较工具发现android\kernel\msm-4.4\arch\arm64\configs\sdm660-perf_defconfig  与android\kernel\msm-4.4\arch\arm64\configs\sdm660_defconfig差异很大,挨着尝试修改发现是如下2行代码导致了user版本异常:

+CONFIG_IRQSOFF_TRACER=y

+CONFIG_PREEMPT_TRACER=y

记录一下,以后遇到类似问题,可以跟踪这2个文件的差异进行排查问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容