Android | использование разрешений UPDATE_PACKAGES - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь обновить пакет, который предварительно загружен в образ, используя Android PackageInstaller, как указано ниже.

Соответствующее приложение является привилегированным приложением и установлено внутри /system/priv-app. Поэтому в идеале я думаю, что наличия android.permission.UPDATE_PACKAGES будет достаточно для обновления пакета. Такое же разрешение упоминается в разделе /etc/permissions/privapp-permissions-atv.xml для этого приложения.

Но по какой-то причине оно завершается неудачно и выдает приведенную ниже ошибку в BroadcastReceiver, который я реализовал.

android.content.pm.extra.STATUS : -1
android.content.pm.extra.SESSION_ID : 344244195
android.intent.extra.INTENT : Intent { act=android.content.pm.action.CONFIRM_PERMISSIONS pkg=com.google.android.packageinstaller (has extras) }

Что мне здесь не хватает? Нужно ли также добавить INSTALL_PACKAGES, или необходимо добавить функцию или любую другую конфигурацию на стороне устройства.

1 Ответ

0 голосов
/ 04 марта 2020

Видимо нет такого разрешения как UPDATE_PACKAGES. Но в рекомендациях по безопасности Android четко упоминается это разрешение - https://source.android.com/security/best-practices/app

enter image description here

Однако правильное разрешение INSTALL_PACKAGE_UPDATES и имеет возможность обновлять пакеты, которые уже установлены в системе.

Это совершенно неожиданная и вводящая в заблуждение информация от Google / Android, и мне пришлось потратить недели, чтобы выяснить, причина этой конкретной проблемы. Не уверен, почему это еще не решено!

...