Android 在AOSP中将文件添加到userdata.img的正确方法是什么?

Android 在AOSP中将文件添加到userdata.img的正确方法是什么?,android,android-source,Android,Android Source,我正在开发一个基于AOSP 5.1.0源代码的ROM。我想在源代码中添加一个文件夹“abc”(它包含一些文件),并将该文件夹编译到设备(Nexus 5)中的“/data/abc”路径中 现在,我用这种方式来实现它: 1) 将“abc”文件夹添加到AOSP源文件夹的根目录中 2) 在/packages/apps/TestApp中添加一个应用程序,在TestApp的Android.mk文件中,在“include$(CLEAR\u VARS)”后面添加“$(shell cp-rf$(LOCAL\u P

我正在开发一个基于AOSP 5.1.0源代码的ROM。我想在源代码中添加一个文件夹“abc”(它包含一些文件),并将该文件夹编译到设备(Nexus 5)中的“/data/abc”路径中

现在,我用这种方式来实现它:

1) 将“abc”文件夹添加到AOSP源文件夹的根目录中

2) 在/packages/apps/TestApp中添加一个应用程序,在TestApp的Android.mk文件中,在“include$(CLEAR\u VARS)”后面添加“$(shell cp-rf$(LOCAL\u PATH)/../../../../abc/$(TARGET\u OUT\u DATA)/abc/)”$(TARGET_OUT_DATA)似乎表示设备中的“/DATA/”路径

3) make-j12

4) fastboot-w flashall

上述方法确实起到了作用,但在“out\target\product\hammerhead\data\abc”中,“abc”中也有一个“abc”文件夹,这太糟糕了,我不知道发生了什么。在我用“fastboot-wflashall”刷新图像之后,“/data/abc”文件夹在Nexus5中缺少很多文件


我不知道在应用程序的Android.mk中执行“shell cp”是否是将文件夹添加到userdata.img的正确方法,如果不是,正确的方法是什么?

最后我找到了正确的方法:

fastboot-w flashall将不会刷新userdata.img映像

您必须通过执行fastboot flash userdata

显式闪存userdata.img。您可以使用$(BUILD\u prebuild)复制多个文件。 您的Android.mk应该如下所示:

include $(CLEAR_VARS)
LOCAL_IS_HOST_MODULE =
LOCAL_MODULE = abc
LOCAL_MODULE_CLASS = ETC
LOCAL_MODULE_PATH = $(PRODUCT_OUT)/data
LOCAL_MODULE_RELATIVE_PATH =
LOCAL_MODULE_SUFFIX =
LOCAL_MODULE_STEM =
LOCAL_MODULE_STEM_32 =
LOCAL_MODULE_STEM_64 =
LOCAL_SRC_FILES = abc/file1 abc/file2
include $(BUILD_PREBUILT)
此外,您还需要将该模块添加到device.mk文件中:

PRODUCT_PACKAGES += abc

注意:复制多个文件(一个目录)可能有更好的方法。

您是要安装预构建的APK,还是要安装什么类型的文件?(最终得到abc/abc目录结构并不奇怪;您的copy命令将一个abc目录显式复制到另一个abc目录中。)abc目录中只有一些数据文件(我的apk使用的配置文件)。如果这是一个apk,它会简单得多。我还误解了语法,dest文件夹中的“abc”应该被删除。