android更新系统应用程序未被授予新权限

android更新系统应用程序未被授予新权限,android,android-permissions,Android,Android Permissions,我在/system/app 当我添加一个系统权限(如android.permission.REBOOT)并将更新安装到系统应用程序时,更新的应用程序不会在更新中添加新权限 当我添加非系统权限时,例如android.permission.INTERNET,应用程序确实会看到新的权限 我们正在试图了解是否有一种方法可以在不使用OTA’s系统应用程序的情况下解决这个问题 编辑:下面是我们安装软件包的方式 Class<?>[] installTypes = new Class[]{Uri.c

我在
/system/app

当我添加一个系统权限(如
android.permission.REBOOT
)并将更新安装到系统应用程序时,更新的应用程序不会在更新中添加新权限

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

我们正在试图了解是否有一种方法可以在不使用OTA’s系统应用程序的情况下解决这个问题

编辑:下面是我们安装软件包的方式

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});
Class[]installTypes=newclass[]{Uri.Class,IPackageInstallObserver.Class,int.Class,String.Class};
installMethod=pm.getClass().getMethod(“installPackage”,installTypes);
...
invoke(pm,新对象[]{apkFile,observer,INSTALL\u REPLACE\u EXISTING,null});

回答我自己的问题

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


如果您希望您的系统应用程序具有新权限,则需要执行OTA,或者将APK的新位放入
/system/app

如何安装更新?我们使用反射调用
PackageManager.installPackage()
method。请参见上面的代码编辑。是否增加了清单中的版本代码?是的,版本代码已增加。是否有文档或源代码的参考?这将是一个很好的补充,看看你在哪里/如何找到这些信息。对不起,只是经验证据。正如我提到的,这也是一个常识,它的工作原理是这样的。当然,我可能是错的,这可能是我没有想到的东西的产物。我同意这是一个很好的常识,我主要是在将来有人问这个问题时寻找具体的东西。