未生成蓝牙HCI监听日志

Jac*_*ltz 24 android bluetooth s5 android-bluetooth android-4.4-kitkat

我正在运行Android 4.4.2并启用了"Bluetooth HCI snoop log",如此处所述嗅探/记录您自己的Android蓝牙流量

打开和关闭蓝牙后,我重新启动了手机.我在预期的位置找不到日志文件:

$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist
Run Code Online (Sandbox Code Playgroud)

我怎样才能到达btsnoop_hci.log?

Twi*_*eEz 80

更新:btsnoop hci日志似乎逐渐退出许多手机上的用户可访问区域.假设您启用了hci日志记录,则可以获取错误报告

adb bugreport anewbugreportfolder
Run Code Online (Sandbox Code Playgroud)

然后解压缩文件夹.如果你很幸运,有一个'FS'文件夹包含btsnoop_hci.log日志几层(不知道为什么有些手机有这个,有些没有.)如果你没有它,抓住bug报告文本看起来像这样的文件

bugreport-2018-08-01-15-08-01.txt
Run Code Online (Sandbox Code Playgroud)

对它运行btsnooz.py.根据Google的说明,

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
Run Code Online (Sandbox Code Playgroud)

截至8/1/18,btsnooz的链接位于:https://android.googlesource.com/platform/system/bt/+/master/tools/scripts/btsnooz.py

遗产回答:

您可以通过阅读bt_stack.conf文件来查看手机存储hci日志的位置.尝试

adb shell cat /etc/bluetooth/bt_stack.conf
Run Code Online (Sandbox Code Playgroud)

你会看到一条看起来像的线

# BtSnoop log output file
BtSnoopFileName =/sdcard/btsnoop_hci.log <--your file location
Run Code Online (Sandbox Code Playgroud)

通常,但并非总是(取决于电话)在SD卡的根目录上.此配置文件中还有一行可以反映hci日志记录是否实际开启

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false
Run Code Online (Sandbox Code Playgroud)

切换开发人员选项中的"启用蓝牙HCI监听日志"选项应将其更改为

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=true
Run Code Online (Sandbox Code Playgroud)

我说"应该",因为有些手机不会更新这个文件.你应该:

  1. 阅读bt_stack.conf文件.查看HCI日志的位置以及是否实际启用了bt snoop日志记录
  2. 如果开发人员选项说btsnoop_hci日志已开启,但bt_stack.conf文件显示已关闭,请尝试重启蓝牙和/或手机.
  3. 如果您的手机已植根,请手动设置BtSnoopLogOutput = true

如果3个选项都不起作用,那你就不走运了.BT Snoop hci日志记录在不​​同的手机上有点不一致.我已经看过一些手机,我无法让它工作,不管是什么,但大多数情况下,你应该能够实现它.根本电话不是必需的

  • 我在 bugreport zip 中找到了我的:`FS\data\misc\bluetooth\logs` (5认同)
  • Google Pixel似乎停留在`BtSnoopLogOutput = false`上 (2认同)

Pau*_*und 14

在Nexus 5X和Pixel C Android O上,您必须启用蓝牙,在开发人员设置中启用HCI监听,禁用和重新启用蓝牙并重新启动.

之后,您可以通过转到开发人员设置并"获取错误报告"并获取完整日志来获取日志.

文件bt_stack.conf未更改,并且/ sdcard上没有与其他设备上一样的新文件


Fuk*_*kai 8

对于用户版本的Pixel/Nexus,您可能没有权限拉出/data/misc/bluetooth/logs/btsnoop_hci.log。您可以像这样获取 hci 日志:

adb shell dumpsys bluetooth_manager
adb bugreport > BUG_REPORT.txt
Run Code Online (Sandbox Code Playgroud)

您将获得一个 BUG_REPORT.txt 和 zip 文件。HCI 日志将在 zip 文件的 FS\data\misc\bluetooth\logs 下找到。


sza*_*ski 8

在 OnePlus 6 (A6003, Android 9) 手机(我相信其他 OnePlus 手机)上的位置是:

/sdcard/oem_log/btsnoop

此位置不需要生根或通过adb. 日志将具有.cfa扩展名,并且采用二进制pcap格式,适合使用例如Wireshark进行分析。


Ton*_*leg 6

这就是为我解决的:

1)adb shell cat /etc/bluetooth/bt_stack.conf

查看日志文件名是什么,对我来说是:

/data/log/bt/btsnoop_hci.log
Run Code Online (Sandbox Code Playgroud)

棘手的部分是文件的名称中带有时间戳,因此您无法仅通过使用来获取它们(它)

adb pull /data/log/bt/btsnoop_hci.log
Run Code Online (Sandbox Code Playgroud)

2)adb pull /data/log/bt/改为使用,您将获得整个文件夹,包含所有日志