【问题标题】:Acquire "signature" permissionlevel on Android在 Android 上获取“签名”权限级别
【发布时间】:2013-08-18 10:09:13
【问题描述】:

我正在构建一个 Android 应用,我需要的权限之一定义为:

android:protectionLevel="signature|system|development"

如何获得签名保护级别?我需要以某种方式签署我的申请吗?

我需要与 OEM 签署吗? (三星\HTC\LG)?

【问题讨论】:

  • 你想做什么?可能还有其他方法。
  • 我正在尝试通过我的应用程序读取 logcat 文件。这需要权限 android.permission.READ_LOGS 最近更改了保护级别,就像我上面描述的那样

标签: android permissions


【解决方案1】:

signature 表示为了能够访问资源,您的应用必须使用与权限持有者相同的证书进行签名。如果这不是您要连接的应用程序,那么您基本上不走运。如果那是系统一,那你就更不走运了,This is documented here

“签名”

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

编辑

我正在尝试通过我的应用程序读取 logcat 文件。这需要 权限 android.permission.READ_LOGS

您无法访问不是由您的应用程序创建的库存 ROM 上的日志。这是出于安全原因而引入的,因此仅仅因为您需要它就让您获得它是没有意义的。如果您构建自己的 ROM,那么您可以拥有它,但是您应该已经知道这一点。

【讨论】:

  • 感谢您的回答!但要明确一点:如果我与三星(例如)签署我的 APK,以后是否也可以与 LG 和 HTC 签署它?据我了解,我向 OEM 发送了一个 apk,他们返回一个已签名的。
  • 单个 apk 的签名不能超过一个。
  • Marcin:但权限级别显示签名|系统|开发,这意味着我需要至少获得其中一个。您声称即使我获得了签名权限级别,我仍然无法访问它们?
  • 不确定“reat”是什么意思。但是“|”代表 OR,所以一旦你可以拥有这三个中的任何一个,你就可以访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 2012-05-26
  • 2011-10-17
  • 1970-01-01
  • 2021-07-14
  • 2021-04-10
相关资源
最近更新 更多