android中的默认墓碑位置

dar*_*ing 5 android adb android-logcat

我正在编写一个应用程序来捕获墓碑日志。

如何在任何 Android 设备中获取墓碑日志的默认位置?即使墓碑日志尚不可用,当发生崩溃或某些事情时,它们会存储在哪里?AFAIK 这些日志保存在“/data/tombstones/”中,但这条路径在所有设备上通用吗?我是否需要从代码中的“adb shell getprop”等动态读取某些属性?

小智 13

如果您还没有 root 设备,您应该使用 bugreport adb 命令:

adb bugreport ./bugreport.zip
Run Code Online (Sandbox Code Playgroud)

在 zip 内您将拥有分析所需的一切。

为了拆卸墓碑:

  1. 获取 AOSP 源代码并按照https://source.android.com/setup/start的说明进行操作,直到出现lunch命令。

  2. 运行命令(将 tombstone_01 替换为兴趣文件):

disassemble_tombstone.py ./bugreport/FS/data/tombstones/tombstone_01
Run Code Online (Sandbox Code Playgroud)

更多工具可以调试https://source.android.com/devices/tech/debug中的 bugreport.zip


Mic*_*urr 6

并不是说这在未来不会改变(当然,作为开源,任何供应商都可以选择修改它),但是墓碑文件是在(以前的)中实现debuggerdengrave_tombstone()函数中编写的:tombstone.cpptombstone.c

这使用使用宏的硬编码路径:

#define TOMBSTONE_DIR "/data/tombstones"
Run Code Online (Sandbox Code Playgroud)

甚至 Android 的 Java 端也使用硬编码路径:

看来使用/data/tombstones至少可以追溯到Android 1.6 Donut 的debuggerd