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 的完全出乎意料且具有误导性的信息,我不得不花费数周时间找出此特定问题的原因。不知道为什么这个问题还没有得到解决!