如何从蓝牙数据包数据中提取数据?
How to extract data from Bluetooth packet data?
从Android 5.0 Bluetooth HCI Snoop Log (Settings > Developer options > Bluetooth HCI Snoop Log) 抓取数据后,我用ATT
, HCI_CMD
获取了很多蓝牙包数据, HCI_EVT
协议。
可以下载与 Wireshark 兼容的日志 here。如何从包中提取纯文本数据?
快速查看该日志,日志中几乎没有 "plain text data" 要提取的内容!毫不奇怪,它主要是二进制编码的数据包数据。
从中获得 "plain text" 的唯一方法是让 Wireshark 将数据包剖析导出为文本,这样您看到的 "plain text" 就是显示在Wireshark 中的数据包详细信息窗格。
您感兴趣的数据可能在ATT数据包中。它们有一个 "Value" 字段,通常是一串十六进制数字。
您不能只从这些值中提取数据;不太可能出现将其导出为文本会导致您看到类似 "hello world, some data, some more data".
的情况
你首先要知道设备提供的是什么服务,建议你去官网查一下Bluetooth LE的规格。甚至可能是您的设备使用的服务未在此处列出。了解该服务后,您可以查看其属性并开始 "decoding" 您收到的值。
从Android 5.0 Bluetooth HCI Snoop Log (Settings > Developer options > Bluetooth HCI Snoop Log) 抓取数据后,我用ATT
, HCI_CMD
获取了很多蓝牙包数据, HCI_EVT
协议。
可以下载与 Wireshark 兼容的日志 here。如何从包中提取纯文本数据?
快速查看该日志,日志中几乎没有 "plain text data" 要提取的内容!毫不奇怪,它主要是二进制编码的数据包数据。
从中获得 "plain text" 的唯一方法是让 Wireshark 将数据包剖析导出为文本,这样您看到的 "plain text" 就是显示在Wireshark 中的数据包详细信息窗格。
您感兴趣的数据可能在ATT数据包中。它们有一个 "Value" 字段,通常是一串十六进制数字。
您不能只从这些值中提取数据;不太可能出现将其导出为文本会导致您看到类似 "hello world, some data, some more data".
的情况你首先要知道设备提供的是什么服务,建议你去官网查一下Bluetooth LE的规格。甚至可能是您的设备使用的服务未在此处列出。了解该服务后,您可以查看其属性并开始 "decoding" 您收到的值。