双启动蓝牙 LE(低功耗)设备配对

Gon*_*llo 15 fedora dual-boot windows bluetooth

我正在尝试在 Fedora 26 上配对两个蓝牙设备、一个鼠标和一个键盘。我还安装了 Windows 10。我所做的是:将它们在 linux 上然后在 Windows 上配对,但是当我尝试插入从 Windows 获得的密钥时,我没有找到我遵循的指南[LinkKey]中提到的条目

这是我在其中一台设备的信息文件中的内容:

[General]
Name=Designer Mouse
Appearance=0x03c2
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;

[IdentityResolvingKey]
Key=D8F3A0A146FEB991BF2ECD9756C8BDFA

[LocalSignatureKey]
Key=23AB7AF05C5AC930F9322CF44114856B
Counter=0
Authenticated=false

[LongTermKey]
Key=D2681BEA8B2C177B1AB8786F22C89DBB
Authenticated=0
EncSize=16
EDiv=48309
Rand=10283782112900107958

[DeviceID]
Source=2
Vendor=1118
Product=2053
Version=272

[ConnectionParameters]
MinInterval=6
MaxInterval=6
Latency=60
Timeout=300
Run Code Online (Sandbox Code Playgroud)

根据指南,应该是[LinkKey]入口,但没有。

我已经有了 Windows 的密钥,也尝试了这个问题中提到的方法

Ste*_*ian 23

问题是您的设备是蓝牙 LE(低功耗)设备,它们的处理方式不同。我找到了以下两个解决方案,它们帮助我将 Microsoft 3600 鼠标设置为双启动。

在此处查看有关如何使用蓝牙 LE 设备手动执行此操作的教程:http : //console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html

关键步骤是:

  • Linux 中的第一对
  • 重启
  • 在 Windows 中配对
  • 从 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\{computer-bluetooth-mac}\{device-bluetooth-id} 获取密钥值
    • 它可能是 ControlSet001 或 ControlSet002,在 SYSTEM\Select 中可以找到其中一个,但通常是 ControlSet001
  • 这可以完成,例如使用 chntpw(来自 linux)
    cd {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/
    chntpw -e SYSTEM
  • 转到 /var/lib/bluetooth/{computer-bluetooth-mac}
  • 检查与设备蓝牙 ID 非常相似的目录(它们通常有点偏离,因为它们可能会在您再次配对时发生变化)
  • 重命名该目录以匹配设备 ID
  • 编辑重命名目录中的 info 文件
  • 复制以下值:
    • IRKKeyIdentityResolvingKey
    • CSRKKeyLocalSignatureKey
    • LTKKeyLongTermKey
    • ERandinto Rand:取十六进制值ab cd ef,将其字节反转(ef cd ab)并将其转换为十进制(例如使用计算器应用程序的编程模式)
    • EDIVinto EDiv: 取十六进制值正常转换即可,如果显示则直接使用十进制值(chntpw显示)
  • 重启

或者
使用 Mygod 为您执行这些步骤的这个 python 脚本:https ://gist.github.com/Mygod/f390aabf53cf1406fc71166a47236ebf

我已经使用了该脚本,并且只是复制了组中的 Key 条目LongTermKeyLocalSignatureKeyandIdentityResolvingKey以及组中的EDivandRand条目LongTermKey

链接的手动路线的注释
它对我来说并没有真正起作用,这就是我没有使用它的原因,但是如果它对其他人不起作用,这些是常见的修复方法:

  • 本教程没有提到它,但如果您有一个 IRK 条目,请将值复制到IdentityResolvingKey密钥。
  • 不要将 KeyLength 复制到 EncSize。保持原样(在我的情况下为 16)
  • 如果设备名称不完全相同,请不要忘记移动目录。
    • 就我而言,第 5 组正在计算每对配对。

脚本的一些额外帮助:

  • 它在linux中运行。
  • 必须安装 Windows 分区。
  • 该命令应如下所示:
    ./export-ble-infos.py -s {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/SYSTEM
    • 您也可以将 SYSTEM 文件复制到其他地方并通过路径传递 -s {PATH}
  • 如果有 Windows 知道的其他蓝牙设备不是 LE 或至少不是这种格式,它会崩溃。