【问题标题】:Is READ_LOGS a normal or dangerous Android permission?READ_LOGS 是正常还是危险的 Android 权限?
【发布时间】:2017-12-29 10:43:18
【问题描述】:

我收到的关于使用android.permission.READ_LOGS Android 权限的信息非常矛盾。首先,Android 文档网站没有指定该权限的保护级别。它既不属于正常,也不属于危险。他们确实指定了以下内容:

“不供第三方应用程序使用,因为日志条目可以 包含用户的隐私信息。”

一些网站说不要将它用于同样的隐私问题。 但是我有一些问题:

  1. 当我在 Android 7.1.1 (Nexus 5X) 和 Android 4.4.2(旧三星 8 英寸平板电脑)上的应用程序中测试此权限时,它们都没有提示我该应用程序需要此权限。两者都表示该应用程序请求“无特殊权限”。仅当权限被视为“正常”时才会发生这种情况,在这种情况下会自动授予。
  2. 其次,使用此权限,我只能查看来自 logcat 的与我的应用程序相关的日志,它不会记录任何个人信息。因此,我也没有侵犯任何隐私。我认为此权限可能允许我查看其他应用程序的日志,从而导致隐私问题。

那么,如果是这种情况,那么在应用的生产版本中使用此权限是否安全?如果用户可以通过按下按钮向我发送 logcat,这将有助于我调试用户面临的奇怪错误。

编辑:好的,现在我很困惑。看来我也不需要在清单中明确指定此权限。

【问题讨论】:

  • 好吧,经过进一步挖掘,github上的这个帖子证实了我的观察,并且似乎可以使用权限:github.com/ACRA/acra/issues/292
  • 好吧,在我测试过的 Android 7 或 Android 4.4 上,我似乎不需要 READ_LOGS 权限。那么,为什么人们会提到您需要此权限才能阅读我阅读的所有网站上的日志?

标签: android android-permissions


【解决方案1】:

READ_LOGS 是正常还是危险的 Android 权限?

两者都没有。从 Android 7.1 开始,它是signature|privileged|development。这基本上意味着作为固件构建的一部分签名或安装在特权分区上的应用程序可以持有该权限,但其他任何东西都不能。

Android 文档网站未指定此权限的保护级别

正确。 READ_LOGS 还在 SDK 中,出于向后兼容的原因,但是从 Android 4.1 开始,普通的应用程序就无法容纳它了,five years ago 出来了。

只有当权限被认为是“正常”时才会发生这种情况,在这种情况下它会被自动授予。

没有。

我认为此权限可能允许我查看其他应用的日志,从而导致隐私问题。

在 Android 4.0 及更早版本上确实如此。

那么在应用的生产版本中使用此权限是否安全?

好吧,请记住,应用程序访问 LogCat 内容的记录和支持方式从未有过记录。最有可能的是,您正在使用已发布的脚本小子解决方案之一,例如运行 logcat 命令并捕获其输出。因此,现在或将来完全有可能存在不支持您访问 LogCat 的特定方法的设备。所以,权限不是你的问题;缺少支持 LogCat 访问的 API 是您的问题。

就我个人而言,我会使用日志库将内容记录到文件和 LogCat 中,将文件用于您的应用所需的任何内容。

【讨论】:

  • 感谢您的快速回复。这确实很令人困惑,但我想我终于明白了。你的回答,连同这个:stackoverflow.com/a/16795874/2611713 为我澄清了这一点。我的用例适合当前场景,因为我只想读取我的应用程序由于任何意外崩溃而创建的日志。我正在使用这种方法来阅读我自己的日志:stackoverflow.com/a/20497850/2611713。我不知道这是否被认为是一种脚本小子方法!我的主要困惑是需要获得许可。
  • 另外,我的目标最小 API 为 19。所以我也不需要担心向后兼容性。
  • @lite-whowantstoknow:“我不知道这是否被认为是一种脚本小子方法”——是的,只要logcat 命令的可用性无法保证,并且任何 on 的行为-device logcat 命令未记录。
  • 我明白了。无论如何,我都会优雅地处理错误。我也将日志直接收集到文件中以用于其他调试目的,但是对于某些错误,如果没有 logcat,我似乎无法做到这一点。这与使用 packagemanager API 获取已安装应用程序的列表有关,但它会出错。但那是另一回事!
  • @CommonsWare “您能否推荐一个将日志消息保存到文件的库”。我可以看到这么多,无法选择正确的。谢谢
猜你喜欢
  • 2011-11-12
  • 2017-11-05
  • 1970-01-01
  • 2016-08-24
  • 2017-12-21
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 2012-07-12
相关资源
最近更新 更多