我正在编写一个应用程序来捕获逻辑删除日志。
如何在任何Android设备中获取逻辑删除日志的默认位置? 即使墓碑日志还没有,当发生任何崩溃或其他事情时,它们会在哪里存储? AFAIK这些日志保存在' / data / tombstones /'但这条路径是否适用于所有设备? 我是否需要从" adb shell getprop"中读取一些属性?动态代码中的等等?
答案 0 :(得分:3)
不是说未来不能改变(当然,如果他们愿意,任何供应商都可以修改这个开源代码),但是墓碑文件是由debuggerd
engrave_tombstone()
编写的。在tombstone.cpp
(以前为tombstone.c
)中实施的功能:
这使用宏使用硬编码路径:
#define TOMBSTONE_DIR "/data/tombstones"
即使是Android的Java端也使用硬编码路径:
似乎使用/data/tombstones
至少回到Android 1.6 Donut's debuggerd
答案 1 :(得分:3)
如果你还没有root你的设备,你应该使用bugreport adb命令:
adb bugreport ./bugreport.zip
在 zip 中,您将拥有分析所需的一切。
为了拆解墓碑:
获取 AOSP 源代码并按照 https://source.android.com/setup/start 的说明进行操作,直到 lunch
命令。
运行命令(用兴趣文件替换 tombstone_01):
disassemble_tombstone.py ./bugreport/FS/data/tombstones/tombstone_01
更多工具可以调试 https://source.android.com/devices/tech/debug 中的 bugreport.zip
答案 2 :(得分:0)
这条道路不是普遍的,事实上这不是我很久以来见过的。通常,当出现墓碑时,您会在logcat中获得一行说明日志的位置。否则你需要四处寻找。
答案 3 :(得分:0)
您可以在“adb shell”的“/”目录下运行命令以找到特定设备的逻辑删除位置。
find . |grep tombs