Android更新后的系统应用未获得新权限

标签 android android-permissions

我在 /system/app 中的自定义 ROM 中安装了一个应用程序

当我添加系统权限时,例如android.permission.REBOOT , 并为系统应用安装更新,更新后的应用不会获得更新中添加的新权限。

当我添加非系统权限时,例如android.permission.INTERNET ,应用程序确实看到了新权限。

我们正在尝试了解是否有一种方法可以在不对系统应用进行 OTA 的情况下解决这个问题。

编辑:这是我们安装包的方式,

Class<?>[] installTypes = new Class[]{Uri.class, IPackageInstallObserver.class, int.class, String.class};
installMethod = pm.getClass().getMethod("installPackage", installTypes);
...
installMethod.invoke(pm, new Object[]{apkFile, observer, INSTALL_REPLACE_EXISTING, null});

最佳答案

系统应用无法通过升级获得新权限。我认为,原因是如果您曾经破坏了系统应用程序,您可以升级它并添加您想要的任何权限,包括只能授予系统应用程序的所有危险权限。

如果您希望您的系统应用程序拥有新的权限,您需要执行 OTA,或者以其他方式将 APK 的新位获取到 /system/app

关于Android更新后的系统应用未获得新权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219462/

相关文章:

android - 播放控制台 : How does "Internal Test Track" work after completing Review?

android - 导出已签名的应用程序包时出错

java - 为什么这不会通知线程?

java - 为什么 checkSelfPermission() 抛出 NullPointerException

android - 折叠的方法在 IDE 重启后展开

android - 打开文件管理器的隐式 Intent

Android:在不需要可怕的(用户)权限的情况下获取用户 ID?

java - 基于应用程序安装顺序的 Android 自定义权限失败

Android 停止录屏权限提示

Android Studio v1.3 检查未经检查的权限使用情况