社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
答案:
device/厂商名/项目名/AndroidBoard.mk 决定了使用哪个def_config文件
以device/qcom/sm6150/AndroidBoard.mk为例子
因为KERNEL_DEFCONFIG被定义为sdmsteppe-perf_defconfig、sdmsteppe_defconfig文件,所以kernel编译时会使用这两个中的一个。
#----------------------------------------------------------------------
# Compile Linux Kernel
#----------------------------------------------------------------------
ifeq ($(KERNEL_DEFCONFIG),)
ifeq ($(TARGET_BUILD_VARIANT),user)
KERNEL_DEFCONFIG := vendor/sdmsteppe-perf_defconfig
else
KERNEL_DEFCONFIG := vendor/sdmsteppe_defconfig
endif
endif
而TARGET_BUILD_VARIANT变量是在Android编译系统中定义的
这个变量决定了编译的是userdebug还是eng版本
也会决定具体是使用sdmsteppe-perf_defconfig,还是sdmsteppe_defconfig文件
在内核源码中的kernel/msm-4.14/AndroidKernel.mk文件确定了具体使用哪个config文件
ifeq ($(shell echo $(KERNEL_DEFCONFIG) | grep vendor),)
KERNEL_DEFCONFIG := vendor/$(KERNEL_DEFCONFIG)
endif
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!