罗技的 Master 3 鼠标最多可以同时配对三个设备并使用鼠标底部的按钮进行切换,在此之前,我一直将它们分配给我的主机(Windows)、主机(Linux)和 Surface Pro 并在每次切换系统时手动使用按钮切换连接,然而在拿到了公司的 Macbook Pro 后,三个通道就变得不再够用,而频繁的配对连接更是让人无法接受。由于蓝牙配对使用设备 Mac 地址和对应的 Key 识别连接,我便寻思着通过共享设备的配对信息来统一双系统下的蓝牙配对,同时留出一个通道给新的设备。
在 Linux 下配对蓝牙鼠标
完成配对后,你应该可以在 /var/lib/bluetooth/主机蓝牙设备地址/鼠标蓝牙设备地址
下看到配对信息,在 info 中就存有配对验证使用的 IdentityResolvingKey
和 SlaveLongTermKey
。
➜ ~ sudo ls /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/YY:YY:YY:YY:YY:YY
attributes info
在 Windows 下配对鼠标并获取配对信息
进入 Windows,使用相同通道配对鼠标,其配对信息被保存在注册表的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\主机蓝牙设备地址\鼠标蓝牙设备地址
下。但是,由于权限问题我们无法通过传统方式访问这一地址(管理员也不行),需要使用 PsExec 以系统身份运行注册表才能查看。
PsExec64.exe -s -i regedit

记录下其中的 Address(设备地址)
、IRK(IdentityResolvingKey)
和 LTK(SlaveLongTermKey)
。
将得到的配对信息应用到 Linux 下
回到 Linux 下,用上一步得到的 IRK 和 LTK 覆盖蓝牙配对信息中的对应值即可。需要注意的是,对于 Master 3,每次配对都将导致蓝牙设备地址自增,因此我们还需要重命名文件夹使蓝牙设备地址与 Windows 下获取到的地址相同,完成修改后,通常还需要重启主机使配置生效。