2010-06-28 73 views
5

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

Android的关于“签名”保护级别参考文件规定:

只有系统补助,如果请求应用程序 与相同的证书作为申报 许可申请签署的许可。如果证书匹配,系统会自动授予权限而不通知用户或要求用户明确批准 。

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

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

当我试图使用许可 “READ_INPUT_STATE”(2.2新)我在logcat中出现以下错误:

9月6日至28日:28:34.943:WARN/PackageManager(60):未授予权限android.permission.READ_INPUT_STATE打包com.example.wheredoyoulive(protectionLevel = 2 flags = 0x8444)

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

请帮助我,并清除我的疑惑。

问候

阿布舍克

回答

4

我相信“签名”权限级别的目的是为了两个应用程序由同一个开发商能够在不打扰用户无缝地共享数据。 READ_INPUT_STATE权限不打算在应用程序中使用:

允许应用程序检索键和开关的当前状态。 这仅供系统使用。

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

+0

感谢您的回复。 在您提到的情况下,开发人员必须创建一个新的“自定义权限”,以便将保护级别提供的设施充分利用到我的应用程序中。 我向我的示例应用程序授予了“READ_INPUT_STATE”权限,以检查如果我授予签名级别权​​限会发生什么情况。 – tandon16 2010-06-28 05:44:23

+0

好的,你的问题解决了吗? – Computerish 2010-06-28 14:35:45

+0

我对“签名”保护级别有些怀疑。通过进行上面的讨论,我们可以得出结论:没有第三方应用程序将被授予保护级别为“Signature”或“SignatureOrSystem”的权限? 我原来的问题是: “我想知道的是Android Market或其他网站上有多少应用程序可以拥有这些权限?就像一个用于录制调用的应用程序除了其他的还有android.permission.DEVICE_POWER权限,安装时Android系统真的授予这个应用程序的这个权限吗?“ – tandon16 2010-06-29 02:43:34

0

Facebook主页使用此,

一旦你安装它,你会发现,它不要求任何权限,但明确要求Facebook的应用程序进行安装,这使系统可以通过代理Facebook应用程序授予它必要的权限。

通常发生的事情是Facebook应用程序具有其他应用程序读取您的状态和新闻馈送的广告设施,通常这些应用程序需要明确请求使用它们的权限,如果它们是在不同的证书或私钥下签名的。