我正在运行 Android 4.4.2,并启用了此处所述的“蓝牙 HCI 监听日志”Sniffing/logging your own Android Bluetooth traffic
打开和关闭蓝牙后,我重新启动了手机。我在预期的位置找不到日志文件:
$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist
如何访问 btsnoop_hci.log?
最佳答案
更新:btsnoop hci 日志似乎正在逐步退出许多手机上的用户可访问区域。假设您启用了 hci 日志记录,您可以获得错误报告
adb bugreport anewbugreportfolder
然后解压文件夹。如果幸运的话,有一个“FS”文件夹,其中包含 btsnoop_hci.log 日志记录了几层(不知道为什么有些手机有这个,有些没有。)如果你没有它,捕获错误报告文本看起来像这样的文件
bugreport-2018-08-01-15-08-01.txt
对它运行 btsnooz.py。 Per Google`s instructions,
To extract snoop logs from the bug report, use the btsnooz script.
Get btsnooz.py.
Extract the text version of the bug report.
Run btsnooz.py on the text version of the bug report:
btsnooz.py BUG_REPORT.txt > BTSNOOP.log
截至 21 年 1 月 12 日,btsnooz 的链接在这里:https://android.googlesource.com/platform/packages/modules/Bluetooth/+/refs/heads/master/system/tools/scripts/btsnooz.py
传统答案:
您可以通过阅读 bt_stack.conf 文件来查看手机存储 hci 日志的位置。试试
adb shell cat /etc/bluetooth/bt_stack.conf
你会看到一条看起来像这样的线
# BtSnoop log output file
BtSnoopFileName =/sdcard/btsnoop_hci.log <--your file location
通常但不总是(取决于手机)在 sdcard 的根目录上。此配置文件中还有一行可以反射(reflect) hci 日志记录是否实际开启
# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false
在开发人员选项中切换“启用蓝牙 HCI 监听日志”选项应将其更改为
# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=true
我说“应该”,因为对于某些手机,这不会更新此文件。你应该:
- 读取 bt_stack.conf 文件。查看 HCI 日志的位置以及是否实际启用了 bt snoop 日志记录
- 如果开发人员选项显示 btsnoop_hci 日志记录已打开,但 bt_stack.conf 文件显示已关闭,请尝试重启蓝牙和/或您的手机。
- 如果你的手机已经root,手动设置
BtSnoopLogOutput=true
如果这 3 个选项都不起作用,那么您就不走运了。 BT Snoop hci 日志记录在不同手机之间有点不一致。我见过一些手机,无论如何我都无法让它工作,但在大多数情况下,你应该能够让它工作。不需要root手机。
关于android - 未生成蓝牙 HCI 监听日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445552/