我用我的Ubertooth One嗅到了我的Android手机和我的BLE设备之间的一些BLE数据包,我想澄清某个特定字段及其含义。
建立连接后,会发送LL_FEATURE_REQ
,并将LE Encryption
字段的值设置为0
(false
)。
根据官方文件(蓝牙规范版本4.2 [第6卷,第B部分],4.6特征支持):
"当此信息从Controller发送到主机时,设置为0的位表示 此Controller中不支持链路层功能;有点设置为1 表示此Controller支持链路层功能。
当此信息从Controller发送到对等控制器时,位设置为0 表示控制器不应使用链路层功能;一点点 设置为1表示控制器可以使用链路层功能。 "
同样在LL_FEATURE_RSP
LL Encryption
字段设置为0
(false
)。
因此,根据此消息序列图(蓝牙规范版本4.2 [第6卷,D部分]),在发送LL_FEATURE_REQ
之前,主设备(我的Android手机),首先读取支持的功能,然后发送请求。
这是否意味着我的Android设备不支持通信加密?
修改:
下面是Wireshark输出(左边是我的Android手机的蓝牙HCI监听日志,右边是我的Ubertooth捕获的包裹):