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

Is READ_LOGS a normal or dangerous Android permission?

关于 android.permission.READ_LOGS Android 权限的使用,我得到的信息非常矛盾。首先,Android Documentation网站并没有具体说明该权限的保护级别。它既不被归类为正常,也不危险。他们确实指定了以下内容:

"Not for use by third-party applications, because Log entries can contain the user's private information."

出于同样的隐私问题,一些网站表示不要使用它。 但是我对此有一些疑问:

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

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

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

Is READ_LOGS a normal or dangerous Android permission?

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

the Android Documentation website does not specify the protection level of this permission

正确。 READ_LOGS 仍然在 SDK 中,出于向后兼容的原因,但是自 Android 4.1 以来,普通应用程序无法容纳它,five years ago

This only happens if the permission is deemed "normal", in which case it is automatically granted.

没有

I thought this permission may allow me to see other app's logs, causing privacy issues.

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

then is it deemed safe to use this permission in a production version of the app?

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

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