BlueZ BLE GATT 写入请求 (0x12) 而不是 (0x16)

BlueZ BLE GATT write request (0x12) instead of (0x16)

我正在尝试对 BLE 设备进行逆向工程以进行研究。 BLE 设备不需要配对。

我在 wireshark 中看到的其中一个命令是写入特定句柄。当我尝试使用 Gatttool 写入请求执行相同操作时:

sudo gatttool -i hci0 -b 54:6C:0E:21:F5:99 --char-write-req -a 0x0030 -n 110100701301000110010030721000d68c054688df413aa89fb3cfab3d6457172000053958839fa147ac53c129eafc524829bc9ed7655fe96c9f641745c4e07cf044

它使用 0x16 准备写入请求,但似乎也有一些错误。下面是两个捕获的图像,左侧是 GAtttool 请求,右侧是 phone 完成的请求。

右边的通信早些时候协商了一个更大的 MTU。这就是为什么它可以在一个请求中发送整个值。