Вы можете сделать это, сконфигурировав свою сборку для создания файла userdata.img
с включенным приложением (ями), который можно затем прошить с помощью fastboot flash userdata
.
Файл Android.mk
для этих приложений, которые входят в userdata.img
, выглядит примерно следующим образом:
include $(CLEAR_VARS)
LOCAL_MODULE := myapp1
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/app
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
И добавляйте приложения в пакеты продуктов в device.mk
:
PRODUCT_PACKAGES += myapp1 myapp2 ...
Вы сможете найти множество примеров на GitHub, например, https://github.com/search?l=Makefile&q=TARGET_OUT_DATA+BUILD_PREBUILT&type=Code
Поскольку вы создаете изображение с нуля, вы можете поместить свои приложения в пользовательский каталог.и запакуйте скрипт, чтобы установить их во время загрузки, если они еще не установлены.Вы можете вызвать этот скрипт, отредактировав файл init.rc
следующим образом:
on property:dev.bootcomplete=1
exec - system system -- /system/bin/sh /path/to/installer/script.sh
Сценарий установщика может быть простым:
for apkfile in /path/to/custom/apps/*.apk; do
/system/bin/pm install "$apkfile"
done