10

目的: Android.mk を使用して、(Android デバイスの) /system に複数のtxt ファイルをコピーしたい

私の所見:

2 つのアプローチを使用してファイルをコピーできます。1) PRODUCT_COPY_FILES を使用します。これは devices/ / makefile.mk から行われます

元:

PRODUCT_COPY_FILES := \
  frameworks/base/data/etc/telephony.gsm.xml:system/etc/permissions/telephony.gsm.xml \
  some/other/sourc/file:some/destination \
  some/other/sourcefile2: some/destination

2) BUILD_PREBUILD の使用

元 :

##############copy txt file##################
include $(CLEAR_VARS)
#LOCAL_MODULE := mydata.txt
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/myfolder
LOCAL_SRC_FILES := mydata.txt
include $(BUILD_PREBUILT)

上記が機能するには、build/target/product/core.mk に mydata.txt のエントリを作成します

私の特定のクエリは次のとおりです。これで、上記のコードを次々に書き直すことで、2番目のアプローチを使用して複数のファイルをコピーできます。しかし、すべてのファイルのコードを書き直すことなく、2 番目のアプローチ (BUILD_PERBUILD) を使用して複数の txt ファイルをコピーしたいと考えています。

1) include $(BUILD_PREBUILT) 呼び出しを 1 回だけ実行することはできますか?

2) BUILD_MULTI_PREBUILD を使用して目的を解決できますか? どうやって ?

4

2 に答える 2

15

わかりました。探していなかったハック(存在することはわかっていました)を1つ見つけましたが、それは非常に簡単な方法で機能し、問題を解決しました。

mkファイルでシェルコマンドを実行できます。

したがって、複数のファイルを1回でコピーする場合は、次のコードを使用してmkファイルに配置します。

次のシナリオでは、コピーする必要のあるファイルがfile_folder(ディレクトリ)にあります。これは、私のmkファイルと同じディレクトリにあります。そして、file_folderに存在するすべてのファイルをsystem/file_folderにコピーしたいと思います。

#create a directory in /system/
    $(shell mkdir -p $(TARGET_OUT)/file_folder/)
#copy stuff
    $(shell cp $(LOCAL_PATH)/file_folder/* `pwd`/$(TARGET_OUT)/file_folder/)

これはうまくいきました。だから今、私たちはそれを行うための3つの方法があります。それが私のような人に役立つことを願っています。

于 2013-01-18T09:57:05.267 に答える