2015-05-26 5 views
1

Я разрабатываю ПЗУ на основе исходного кода AOSP 5.1.0. Я хочу добавить папку «abc» (она содержит некоторые файлы) в исходный код и скомпилировать папку в путь «/ data/abc» на устройстве (Nexus 5).Каков правильный способ добавления файлов в userdata.img в AOSP?

В настоящее время я использую этот способ, чтобы понять это:

1) Добавить папку «ABC» в корневой папке источника AOSP.

2) Добавьте приложение в/packages/apps/TestApp, в файл Android.mk от TestApp, добавьте «$ (shell cp -rf $ (LOCAL_PATH) /../../../ abc/$ (TARGET_OUT_DATA)/abc /) "за" включить $ (CLEAR_VARS) ". $ (TARGET_OUT_DATA), по-видимому, означает путь «/ data /» в устройстве.

3) делают -j12

4) -w flashall быстрой загрузки

выше способ действительно сделал свою работу, но в "из \ цель \ продукт \ \ данные молота \ аЬс", есть также папка «abc» в «abc», это так ужасно, и я не знаю, что произошло. И после того, как я запустил изображения с помощью «fastboot -w flashall», папке «/ data/abc» не хватает большого количества файлов в Nexus 5.

Я не знаю, выполните ли команду «shell cp» в Android.mk приложения это правильный способ добавить папку в userdata.img, а если нет, то каков правильный путь?

+0

Вы пытаетесь установить заранее подготовленный APK или какие файлы мы говорим? (Неудивительно, что в итоге вы создали структуру каталогов abc/abc, ваша команда копирования явно копирует каталог abc в другую директорию abc.) –

+0

В каталоге abc есть только некоторые файлы данных (файлы конфигурации, используемые моим apk). Если это apk, это будет намного проще. Также я неправильно понял грамматику, «abc» в папке dest должен быть удален. – hsluoyz

ответ

2

Наконец я получил правильный путь:

-w flashall быстрой загрузки не прошить userdata.img изображение

Вы должны прошить userdata.img явно выполняя быстрой загрузки флэш UserData.

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 

Примечание: Существует, вероятно, лучший способ для копирования несколько файлов (каталог).

Смежные вопросы