1、Ubuntu 下配对蓝牙设备
会生成一个配置文件。
2、Windows 下再配对蓝牙设备
读取蓝牙配对信息,Windows下的蓝牙配对信息存储在注册表中,并且此信息需要使用特殊方法才能查看。
下载 PsTools,将PSTools.zip 中的 PsExec.exe 或 PsExec64.exe 解压出来,并以管理员权限运行 cmd,cd
到PsExec64.exe
所在目录,使用下面的命令启动regedit.exe
1
| psexec64.exe -si regedit
|
找到下面的蓝牙配对信息
1
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\【本机蓝牙 MAC】
|
可以看到其中有类型为REG_BINARY
的值,每个值对应一个设备,将其名称和数据记下来,或者直接导出,我导出后用记事本打开如下:
1 2 3 4 5
| Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\d4d853556b34] "CentralIRK"=hex:38,a5,32,96,6c,bf,c2,31,7b,e9,43,e0,b9,cc,9d,d6 "6468761a6934"=hex:6b,bf,d8,14,d8,aa,2f,d8,f7,68,73,a7,83,64,6e,8f
|
此外如果是罗技设备,例如本人的罗技鼠标,则需要导出 【本机蓝牙 MAC】
下的子项,项名称为罗技鼠标的 MAC 地址,项中的各个值则是需要填写到 Ubunut 中的内容
3、修改Linux下的蓝牙配对信息
3.1 一般设备
Linux 下蓝牙设备的配对信息存储在 /var/lib/bluetooth/【本机蓝牙 MAC】
目录下,例如 /var/lib/bluetooth/D4:D8:53:55:6B:34
,MAC 地址中的字母全为大写,且含冒号分隔符。
进入该目录:
1 2
| sudo su cd /var/lib/bluetooth/D4\:D8\:53\:55\:6B\:34/
|
可以看到系统已配对的蓝牙设备:
1 2 3 4 5 6 7 8 9 10
| root@Victus-Ubuntu:/var/lib/bluetooth/D4:D8:53:55:6B:34# ll total 44 drwx------ 7 root root 4096 12月 13 22:19 ./ drwxr-xr-x 3 root root 4096 5月 13 2023 ../ drwx------ 2 root root 4096 12月 13 22:19 64:68:76:1A:69:34/ drwx------ 2 root root 4096 12月 13 22:19 A4:C1:38:AB:43:5C/ drwx------ 2 root root 16384 12月 13 22:20 cache/ drwx------ 2 root root 4096 12月 13 22:19 EC:B3:D5:3C:5F:92/ drwx------ 2 root root 4096 12月 13 22:20 F9:E7:70:AD:8C:64/ -rw------- 1 root root 50 12月 13 22:19 settings
|
根据我们导出的reg文件,可以知道进入我们要配置的蓝牙鼠标的目录:
1
| cd 64\:68\:76\:1A\:69\:34/
|
我们需要修改的就是这个目录下的 info 文件,以我的为例,文件如下(这里已经改好了,只需要将Key换成windows下导出的注册表里面的key,具体就是win下的逗号删除小写变大写):
1 2 3 4 5 6 7 8 9 10 11 12
| [General] Name=EDIFIER W820NB 双金标版 Class=0x240404 SupportedTechnologies=BR/EDR; Trusted=true Blocked=false Services=00001101-0000-1000-8000-00805f9b34fb;0000110b-0000-1000-8000-00805f9b34fb;0000110c-0000-1000-8000-00805f9b34fb;0000110d-0000-1000-8000-00805f9b34fb;0000110e-0000-1000-8000-00805f9b34fb;0000111e-0000-1000-8000-00805f9b34fb;66666666-6666-6666-6666-666666666666;edf00000-edfe-dfed-fedf-edfedfedfedf;
[LinkKey] Key=6BBFD814D8AA2FD8F76873A783646E8F Type=4 PINLength=0
|
3.2 罗技设备
将 Windows 下的 IRK 字符倒序大写删除逗号,即为 Ubuntu 下的 IdentityResolvingKey
1 2 3 4
| "IRK"=hex:d3,1f,03,20,e5,be,13,64,33,8b,63,09,d3,01,bd,33
[IdentityResolvingKey] Key=33BD01D309638B6413BEE520031FD3
|
Windows 下的 LTK 大写删除逗号,即为 Ubuntu 下的 LontermKey
EDIV 需要转换成 10 进制,为 Ubuntu 的 EDiv
ERand 需要删除逗号并转换成 10 进制,为 Ubuntu 的 Rand
1 2 3 4 5 6 7 8 9 10
| "LTK"=hex:ae,4b,59,52,fa,32,7d,2b,aa,0a,a7,de,33,ac,2b,20 "ERand"=hex(b):cd,d7,f7,f8,01,f9,49,f2 "EDIV"=dword:00006f5f
[LongTermKey] Key=AE4B5952FA327D2BAA0AA7DE33AC20 Authenticated=0 EncSize=16 EDiv=28511 Rand=14832596542325082602
|
然后重启电脑,可以直接连接蓝牙。
Windows与Ubuntu双系统绑定同一个蓝牙设备(无需重新配对)