获取具有签名保护级别的Android权限

获取具有签名保护级别的Android权限,android,Android,根据android开发者文档,如果调用应用程序B使用与A签名相同的密钥签名,则可以获得应用程序A中具有签名的保护级别的权限。同样根据,android具有签名保护级别的权限无法被第三方应用程序获取,但在中,有一个名为REQUEST\u INSTALL\u PACKAGES的权限,其保护级别为签名。我见过许多代码在其代码中声明此权限: <uses-permission android:name="REQUEST_INSTALL_PACKAGES" /> 那怎么可能呢?少了什么 那

根据android开发者文档,如果调用应用程序
B
使用与
A
签名相同的密钥签名,则可以获得应用程序
A
中具有
签名的保护级别的权限。同样根据,android具有
签名
保护级别的权限无法被第三方应用程序获取,但在中,有一个名为
REQUEST\u INSTALL\u PACKAGES
的权限,其保护级别为
签名
。我见过许多代码在其代码中声明此权限:

<uses-permission android:name="REQUEST_INSTALL_PACKAGES" /> 

那怎么可能呢?少了什么

那怎么可能呢

他们有可能在清单中包含该元素,因为他们的开发人员能够输入该元素

仅仅因为一个应用程序有一个
元素并不意味着他们获得了权限。这取决于许多因素,包括
protectionLevel

请求安装\u软件包
的特定情况下,
保护级别
没有
签名
值。它有
签名| appop
。appop是一个令人困惑的值,但它可以归结为“应用程序可以通过一些奇怪的方式行使权限”。在这种情况下,Android 8.0+上的软件包安装程序将完全拒绝任何未请求此权限的应用程序,并尝试使用
ACTION\u VIEW
ACTION\u INSTALL\u软件包
。否则,它将提示用户确认此应用程序可以请求安装软件包

注意:
|appop
部分不会出现在JavaDocs中,但会出现在平台清单中,这在运行时很重要

那怎么可能呢

他们有可能在清单中包含该元素,因为他们的开发人员能够输入该元素

仅仅因为一个应用程序有一个
元素并不意味着他们获得了权限。这取决于许多因素,包括
protectionLevel

请求安装\u软件包
的特定情况下,
保护级别
没有
签名
值。它有
签名| appop
。appop是一个令人困惑的值,但它可以归结为“应用程序可以通过一些奇怪的方式行使权限”。在这种情况下,Android 8.0+上的软件包安装程序将完全拒绝任何未请求此权限的应用程序,并尝试使用
ACTION\u VIEW
ACTION\u INSTALL\u软件包
。否则,它将提示用户确认此应用程序可以请求安装软件包


注意:
|appop
部分不会出现在JavaDocs中,但它会出现在平台清单中,这在运行时很重要。

您如何发现保护级别是
签名| appop
而不是
签名
?你知道appop的意思吗?文档中没有提到这一点。@MehranTorki:“您是如何发现保护级别是signature | appop的”--我查看了平台清单文件,其中定义了这些权限。例如“你知道appop的含义吗?”——正如我在回答中所说,“应用程序可以通过一些奇怪的方式来行使权限”。例如,这些权限的行为与普通的
危险
运行时权限不同。您是如何发现保护级别是
签名| appop
而不是
签名
?你知道appop的意思吗?文档中没有提到这一点。@MehranTorki:“您是如何发现保护级别是signature | appop的”--我查看了平台清单文件,其中定义了这些权限。例如“你知道appop的含义吗?”——正如我在回答中所说,“应用程序可以通过一些奇怪的方式来行使权限”。例如,这些权限的行为与普通的
危险的
运行时权限不同。