我尝试在应用中使用其他应用(Bazaar)创建的自定义权限(使用市场com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR的权限)。正常情况下它工作正常。但是如果我的应用程序后面安装了Bazaar。我的应用无法获取自定义权限(由Bazaar创建)并抛出异常。我想知道是否有人遇到过类似的问题,你有什么解决方案?
com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR
xurqigkl1#
这是期望的行为。在教科书中,Android安全内部:Android的安全架构深入指南Nikolay Elenkov(2014)说:系统只能授予它知道的权限,这意味着需要在安装使用自定义权限的应用程序之前安装定义这些权限的应用程序。如果应用程序请求系统未知的权限,则会忽略该权限,并且不会授予该权限。顺便说一句,权限在安装时由PackageManager分配给每个应用程序,它维护了一些已安装软件包的信息,如软件包名称,版本和权限,这些信息存储在/data/system/packages.xml中。如果您想查询设备上的所有权限,可以尝试pm list permissions。
/data/system/packages.xml
pm list permissions
1条答案
按热度按时间xurqigkl1#
这是期望的行为。
在教科书中,Android安全内部:Android的安全架构深入指南Nikolay Elenkov(2014)说:
系统只能授予它知道的权限,这意味着需要在安装使用自定义权限的应用程序之前安装定义这些权限的应用程序。如果应用程序请求系统未知的权限,则会忽略该权限,并且不会授予该权限。
顺便说一句,权限在安装时由PackageManager分配给每个应用程序,它维护了一些已安装软件包的信息,如软件包名称,版本和权限,这些信息存储在
/data/system/packages.xml
中。如果您想查询设备上的所有权限,可以尝试pm list permissions
。