Android | UPDATE_PACKAGES 权限的使用
Android | usage of the UPDATE_PACKAGES permissions
我正在尝试使用 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
或者是否需要添加设备端的功能或任何其他配置。
显然没有 UPDATE_PACKAGES
这样的权限。但是在Android security best practices中已经明确提到了这个权限——https://source.android.com/security/best-practices/app
然而,正确的权限是INSTALL_PACKAGE_UPDATES
,它可以更新系统中已经安装的软件包。
这是来自 Google/Android 的完全出乎意料且具有误导性的信息,我不得不花费数周时间找出此特定问题的原因。不知道为什么这个问题还没有得到解决!
我正在尝试使用 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
或者是否需要添加设备端的功能或任何其他配置。
显然没有 UPDATE_PACKAGES
这样的权限。但是在Android security best practices中已经明确提到了这个权限——https://source.android.com/security/best-practices/app
然而,正确的权限是INSTALL_PACKAGE_UPDATES
,它可以更新系统中已经安装的软件包。
这是来自 Google/Android 的完全出乎意料且具有误导性的信息,我不得不花费数周时间找出此特定问题的原因。不知道为什么这个问题还没有得到解决!