gpt4 book ai didi

android - 在 Jelly Bean 设备上读取 ActivityManager 日志?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:42 24 4
gpt4 key购买 nike

Jelly Bean 已经删除了读取其他应用程序日志的能力(根据 this I/O 讨论),这是一个明智的安全改进。但是,我需要阅读 ActivityManager-logs 才能使我的应用正常工作(以查看当前正在启动的应用)。为此,我使用了

private static final String clearLogcat = "logcat -c";
private static final String logcatCommand = "logcat ActivityManager:I *:S";
//...

它不再有效,因为我只能在 Jelly Bean 中读取我自己的应用程序日志。是否有替代解决方案来找出另一个应用程序何时启动(除了 root)?我理解为什么我们不应该能够读取其他应用程序的日志(有点——其他开发人员有责任确保没有个人信息被记录,而不是我的被阻止读取日志),但我不明白为什么框架类 ActivityManager 包含在该策略中...

谢谢,
尼克

最佳答案

关于此问题的广泛讨论正在进行 here .不幸的是,这是“预期行为”,因此不会被修复。当前唯一的解决方案(用于从 JB 及更高版本的应用程序中读取日志)是通过 adb 手动授予应用程序权限:

adb shell pm grant <pkg> android.permission.READ_LOGS

这样授予的权限:

  • 在重启后幸存
  • 在应用程序更新后存活(即“adb install -r”)
  • 如果应用程序被卸载然后安装则无法生存再次

很明显,这不是普通用户应该做的事情。 Android 团队 promise 提供 GUI 解决方案(用户可以从设备的 Settings 菜单授予此权限),但不幸的是,该功能在实现“修复”之前已被删除。

关于android - 在 Jelly Bean 设备上读取 ActivityManager 日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com