用PRODUCT_COPY_FILES拷贝文件夹

时间:2023-03-09 17:20:20
用PRODUCT_COPY_FILES拷贝文件夹

拷贝文件
PRODUCT_COPY_FILES += device/qcom/msm8909/media/media_profiles_8909.xml:system/etc/media_profiles.xml

拷贝文件夹
PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/xxx,system/vendor/xxx)
或者
$(shell mkdir -p ${OUT}"/system/etc/")源码编译的时候,先读取该mk文件,该目录还没创建,所以要建一个,否则拷贝失败。
$(shell cp -rf $(LOCAL_PATH)/usb_modeswitch.d ${OUT)}"/system/etc/"),然后通过shell拷贝任意文件。

如果出现拷贝的是apk文件,则有可能出现如下错误
Prebuilt apk found in PRODUCT_COPY_FILES: device/amlogic/f16ref/hello.apk:/system/app/hello.apk, use BUILD_PREBUILT instead!.  Stop.
原因是build/core/Makefile中对copy file作了检测,如果是apk文件,会出错 
此时注释掉build/core/Makefile里面的define check-product-copy-file函数内容即可

device/qcom/msm8953_64/msm8953_64.mk中:

#add ntfs file begin
$(warning "WTDBGINFO--Copy ntfs and exfat bin and lib")
PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/ntfs/bin,system/bin)
PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/ntfs/lib,system/lib)
#add ntfs file end

其中find-copy-subdir-files接收的3个参数:

67## List all of the files in a subdirectory in a format
68## suitable for PRODUCT_COPY_FILES and
69## PRODUCT_SDK_ADDON_COPY_FILES
70##
71## $(1): Glob to match file name
72## $(2): Source directory
73## $(3): Target base directory
74###########################################################