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 更新系统应用未获得新权限的主要内容,如果未能解决你的问题,请参考以下文章