2015-05-26 52 views
1

我正在開發基於AOSP 5.1.0源代碼的ROM。我想向源代碼添加一個文件夾「abc」(它包含一些文件),並將該文件夾編譯到設備中的「/ data/abc」路徑中(Nexus 5)。在AOSP中將文件添加到userdata.img的正確方法是什麼?

到現在爲止,我用這種方式來實現它:

1)添加「ABC」文件夾AOSP源文件夾的根目錄。在TestApp的Android.mk文件中添加一個應用程序,在/ packages/apps/TestApp中添加「$(shell cp -rf $(LOCAL_PATH)/../../../ abc/$( TARGET_OUT_DATA)/ abc /)「後面的」include $(CLEAR_VARS)「。 $(TARGET_OUT_DATA)似乎意味着設備中的「/ data /」路徑。

3)使-j12

4)FASTBOOT -w flashall

上述辦法確實做了工作,但在 「走出\目標\產品\錘頭\ DATA \ ABC」,也有「abc」中的「abc」文件夾,這是如此的匆忙,我不知道發生了什麼。並且在我通過「fastboot -w flashall」刷新圖像後,「/ data/abc」文件夾在Nexus 5中缺少很多文件。

我不知道在應用程序的Android.mk中執行「shell cp」是將文件夾添加到userdata.img的正確方法,如果不是,那麼正確的方法是什麼?

+0

您是否試圖安裝預先構建的APK,或者我們在討論什麼類型的文件? (你最終得到abc/abc目錄結構並不奇怪;你的拷貝命令顯式拷貝一個abc目錄到另一個abc目錄。) –

+0

在abc目錄中只有一些數據文件(我的apk使用的配置文件)。如果這是一個apk,它會更簡單。另外我誤解了語法,應該刪除dest文件夾中的「abc」。 – hsluoyz

回答

2

最後我得到了正確的方法:

FASTBOOT -w flashall不會閃爍的userdata.img圖像

你必須明確執行FASTBOOT閃存用戶數據閃爍userdata.img。

0

您可以使用$(BUILD_PREBUILT)複製多個文件。 你的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 

注意:有可能是一個更好的方式來複制多個文件(一個目錄)。

相關問題