android在编译过程中会根据不同的工程,基于其对应的BoardConfig.mk中的KERNEL_DEFCONFIG := xxxxxx_defconfig来选择对应的defconfig文件进行kernel的编译。
我们会看到编译过程中会将kernel中的arch/arm/configs/xxxxxx_defconfig文件复制为.config,然后基于.config对kernel进行编译。但是你若对比一下这个.config和被复制的xxxxxx_defconfig,你会发现它们有些地方是不一样的。
确切的说,这个.config文件是实际的arch/arm/configs/xxxxxx_defconfig的超集。.config除了将arch/arm/configs/xxxxxx_defconfig复制过来以外,还会将Kconfig中所有配置为:default=y的文件加进来。
所以如果你想要仅仅以arch/arm/configs/xxxxxx_defconfig为准,那就要确保那些不想被你编译进来的文件在Kconfig中没有被配置,或者配置为default=n