关于Android权限和签名保护级别

时间:2010-06-28 04:04:28

标签: android permissions

我是Android新手,并且对AndroidManifest.xml中的权限保护级别“签名”有疑问。

Android参考文档说明了“签名”保护级别:

  

系统仅在请求的应用程序授予的权限   使用与声明的应用程序相同的证书进行签名   许可。如果证书匹配,则系统自动进行   在不通知用户或要求用户的情况下授予许可   用户的明确批准。

这意味着普通应用程序无法使用具有“签名”保护级别的权限,并且只能使用Android Dev Team。

我想知道的是Android Market或其他网站上有多少应用程序可以拥有这些权限?就像用于记录调用的应用程序一样,除了其他权限之外还有android.permission.DEVICE_POWER。 Android系统在安装时是否真的将此权限授予此应用程序?

当我尝试使用权限“READ_INPUT_STATE”(2.2中的新功能)时,我在LogCat中收到以下错误:

06-28 09:28:34.943:WARN / PackageManager(60):未授予android.permission.READ_INPUT_STATE权限以封装com.example.wheredoyoulive(protectionLevel = 2 flags = 0x8444)

具有保护级别“SignatureOrSystem”的权限也是如此。除了其他权限之外,还存在一个具有CALL_PRIVILEGED权限的调用者应用程序。

请帮助我并澄清疑虑。

此致

阿布舍克巴克

2 个答案:

答案 0 :(得分:5)

我认为“签名”权限级别的目的是让同一个开发人员能够在不打扰用户的情况下无缝共享数据的两个应用程序。 READ_INPUT_STATE权限不适用于应用程序:

  

允许应用程序检索密钥和交换机的当前状态。 仅供系统使用。

请参阅http://developer.android.com/reference/android/Manifest.permission.html#READ_INPUT_STATE

答案 1 :(得分:0)

Facebook家庭使用此,

一旦你安装它,你会注意到它没有请求任何权限,但明确要求安装facebook应用程序,这样系统就可以通过Facebook应用程序的代理授予它必要的权限。 / p>

通常情况下,Facebook应用程序为其他应用程序提供广告设施以读取您的状态和新闻提要,通常这些应用程序需要明确请求使用它们的权限,如果它们是使用不同的证书或私钥进行签名的话。 / p>

相关问题