预置文件到系统, 踩了点坑, 记录一下
Android 编译一个产品, 需要准备AndroidProduct.mk, boardConfig.mk, AndroidBoard.mk 三个文件。 关于这点参考下面的参考文件。
如果需要预置文件到系统,例如需要预置的文件放置在目录"device/厂商名/产品名/test/res"中,
- #其中LOCAL_PATH为AndroidProduct.mk所在目录, 如device/厂商名/产品名。
- LOCAL_DATA :=$(LOCAL_PATH)/test
-
- #添加文件夹下所有文件。 将(LOCAL_PATH)/test/res下的所有文件copy到/product/res下
- #注意不能使用TARGET_OUT_PRODUCT这类变量, 因为还没定义。
- PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_DATA)/res,$(TARGET_COPY_OUT_PRODUCT)/res)
-
- #添加一个文件。 将(LOCAL_PATH)/test/xxx.xx文件copy到/system/res/下。
- PRODUCT_COPY_FILES += $(LOCAL_DATA)/xxx.xx:$(TARGET_COPY_OUT_SYSTEM)/res/xxx.xx
- .......
- include $(LOCAL_PATH)/test/test.mk
在test目录下创建test.mk文件:
- #可以使用call my-dir。如果在AndroidProduct.mk阶段不能使用my-dir, 没定义!
- LOCAL_PATH := $(call my-dir)
- # mkdir要使用的路径。 TARGET_OUT_PRODUCT此时可以使用, 对应./out/target/product/XXXXX/product
- $(shell mkdir -p $(TARGET_OUT_PRODUCT)/res)
- # 将整个文件夹copy文件到./out/target/product/XXXXX/product/下
- $(shell cp -rf $(LOCAL_PATH)/res $(TARGET_OUT_PRODUCT)/)
参考:
Android 编译过程: