Android中的ALL_DEFAULT_INSTALLED_MODULES定义了需要编译的目标编译件。所以如果需要自定义编译到系统的目标,可以将目标加入到ALL_DEFAULT_INSTALLED_MODULES中。
下面演示一下如何将自定义的一个文件编译到系统中。目标:将文件vendor/mycompany/source/system/etc/para/5g_para.xml编译到系统的/vendor/etc/para/5g_para.xml中。
# 源文件
BOARD_TARGET_5G_PARA_XML := vendor/mycompany/source/system/etc/para/5g_para.xml
BORAD_TARGET_INSTALL_5G_PARA_XML := $(TARGET_OUT_VENDOR)/etc/para/5g_para.xml
$(eval $(call copy-one-file,$(BOARD_TARGET_5G_PARA_XML),$(BORAD_TARGET_INSTALL_5G_PARA_XML)))
ALL_DEFAULT_INSTALLED_MODULES += $(BORAD_TARGET_INSTALL_5G_PARA_XML)
这里用到了自定义的宏:copy-one-file
它定义在build/make/core/definitions.mk中:
# Define a rule to copy a file. For use via $(eval).
# $(1): source file
# $(2): destination file
define copy-one-file
需要注意的就是在使用过程中要使用$(eval)