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

Posted

技术标签:

【中文标题】Android 更新系统应用未获得新权限【英文标题】:Android updated system app is not granted new permission 【发布时间】:2013-06-17 15:41:04 【问题描述】:

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

【问题讨论】:

你是如何安装更新的? 我们使用反射来调用PackageManager.installPackage()方法。 请参阅上面的编辑代码。 你是否增加了 Manifest 中的 versionCode?​​span> 是的,版本代码增加了。 【参考方案1】:

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

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

【讨论】:

您有这方面的参考资料吗,无论是文档还是来源?查看您在何处/如何找到此信息的答案将是一个很好的补充。 对不起,只是经验证据。正如我所提到的,它像这样工作也是一种常识。当然我可能是错的,这可能都是我没有想到的东西。 我同意这是一个很好的常识,我主要是在寻找一些具体的东西来指出将来是否/当有人问这个问题时。

以上是关于Android 更新系统应用未获得新权限的主要内容,如果未能解决你的问题,请参考以下文章

Android中应用程序获得系统权限

角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?

android怎么在代码里获得系统文件的读写权限

Android如何获得系统(system)权限

求问android怎么在代码里获得系统文件的读写权限?

Android:通过 AOSP 源代码创建新的系统权限。