我在 /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/