【问题标题】:Android updated system app is not granted new permissionAndroid 更新系统应用未获得新权限
【发布时间】: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>
  • 是的,版本代码增加了。

标签: android android-permissions


【解决方案1】:

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

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

【讨论】:

  • 您有这方面的参考资料吗,无论是文档还是来源?查看您在何处/如何找到此信息的答案将是一个很好的补充。
  • 对不起,只是经验证据。正如我所提到的,它像这样工作也是一种常识。当然我可能是错的,这可能都是我没有想到的东西。
  • 我同意这是一个很好的常识,我主要是在寻找一些具体的东西来指出将来是否/当有人问这个问题时。
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 2015-08-17
  • 2016-10-11
  • 1970-01-01
  • 2020-03-06
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多