Предварительно установите некоторые приложения, чтобы пользователь мог удалить их без прав root - PullRequest
0 голосов
/ 21 ноября 2018

Могу ли я (как сборщик AOSP) предварительно установить некоторые приложения, чтобы после записи на устройство их можно было легко удалить (например, обычные загруженные приложения)?

Я уже знаком с системными приложениями и priv-приложениямино так как они лежат в системном разделе, их нельзя удалить!(отключено только в меню настроек)

PS Я знаю, например, huawei использует / system / delapp для установки таких приложений.Но я ищу общий путь или платформу AMLogic, над которой я работаю!

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете сделать это, сконфигурировав свою сборку для создания файла 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
...