我们正在使用iMx6平台上通用供应商提供的基于USB的加密狗在WEC2013中测试蓝牙。我们使用WEC2013 BSP提供的默认HCI传输层。
BT已打开并能够扫描所有附近的设备。
我们启用了以下一组sysgen变量和注册表项。
Sysgen变量:
SYSGEN_BTH (Bluetooth stack with universal loadable driver)
SYSGEN_BTH_BTHUTIL (Bluetooth Profile Management APIs)
SYSGEN_BTH_HID_KEYBOARD (Bluetooth HID - Keyboard)
SYSGEN_BTH_HID_MOUSE (Bluetooth HID - Mouse)
SYSGEN_BTH_AG (Bluetooth HS/HF and Audio gateway service)
SYSGEN_BTH_SETTINGS (Bluetooth settings UI)
SYSGEN_OBEX_CLIENT (Obex client)
SYSGEN_OBEX_SERVER (Obex server)
SYSGEN_OBEX_FILEBROWSER (OBEX file browser)
SYSGEN_OBEX_INBOX (OBEX Inbox)
SYSGEN_FTPD (FTP server)
SYSGEN_BTH_BTHSSVC(Support Secure Simple Pairing)
注册表项:
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\224_1_1\Default\Bluetooth_USB_Driver]
"DLL"="bthusb.dll"
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\224_1_1\Bluetooth_USB_Driver]
"DLL"="bthusb.dll"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\Transports\PnP\{B3DD867A-1E6E-4215-8AA7-EAC1DFC46548}]
"flags"=dword:80000000
"driver"="bthusb.dll"
"resetdelay"=dword:0
"PacketSize"=dword:200
"BlockSize"=dword:5
[HKEY_LOCAL_MACHINE\ControlPanel\Bluetooth]
"PinAttemptInterval"=dword:200000
"PinEntries"=multi_sz:"0000","8888"
我们观察到与设备配对的不同情况。
从板上连接到手机(运行WEC2013的imx6 + usb加密狗) 通过bthsettings UI启动配对时,配对成功。它将触发两侧的6位自动密钥。
无需打开bthsettings UI即可从手机连接到主板。 这里的配对是成功的一次。当UI未打开(BT在后台打开)时,从移动设备启动配对,两者都将使用自动配对 6位密码方法。但是这将在内部调用bthsettings UI,所以下次当我们从移动设备给出配对时,移动端会要求手动 密钥插入。只要在移动设备上输入密钥并按下配对,就会在移动终端上观察到配对拒绝通知。 因此,在这种情况下,配对失败了。
打开bthsettings时,从手机连接到主板。 这里配对失败了。当从移动设备启动对时,将调用手动键插入UI,并且当插入键并按下对时, 配对拒绝通知将显示在移动终端上,配对失败。
在这些失败的传感器中,上层正在响应" Pin码请求否定回复命令" for" Pin code request event"来自芯片。
我们需要在此配对过程中输入。为什么根据UI是打开还是从未打开来调用此自动密钥和手动密钥生成方法?为什么手动键盘失败?
我们是否缺少任何注册表项或堆栈功能?
答案 0 :(得分:1)
这一切都与SSP(安全简单配对)有关,它决定了配对认证模型。通过bthsettings下的变化,这在WEC8(2013)中受到影响。
在WEC8下,无论何时从外部设备启动连接,它们都会禁用SSP(通过功能EnbaleSSP()),并在内部启动连接时启用SSP。虽然这是逻辑,但我不知道为什么会引入它(并且它是一个错误,它将在即将发布的更新中修复,因为它们最初用于NDIS 5无线驱动程序连接)。
作为解决方法,请禁用EnableSSP()。
SYSGEN_BTH_SETTSS组件也隐含地需要SYSGEN_BTH_BTHSSVC,并且链接在WEC8下被破坏。
Microsoft已于2015年4月更新中提供了此修复程序。详细信息here。