简介
此片是对多双系统下蓝牙键盘鼠标的共享配对问题解决办法:win + debian + arch~IRK、LTK、ERand、EDIV、CSRK的一个简要过程示意,原理性的内容不再重复叙述。
下面以共享配对一个蓝牙键盘为例,这样子切换os的时候不需要插上usb接收器或者重新配对蓝牙啦。
info
OS : win 10 + arch + debian AMDx86
大致流程
- 配对linux
- 配对win
- 导出win的配置
- 修改linux的配置
正文
配对linux
分别进入每个linux OS配对蓝牙键盘,主要是为了生成一个配置模板,并记录下对于的设备地址,例如下面的就是d1:11…
debian也一样操作
配对win
PsExec
从PsExec官网下载,提取其中的PsExec64.exe
·到c://windows/system32,然后用管理员身份打开powershell,输入psexec64.exe -si regedit
回车即可打开注册表编辑器。(32位PC就提取PsExec.exe,powershell的命令改为psexec.exe -si regedit
)。
在资源管理器粘贴这个: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\
然后回车就会跳转到蓝牙配置。
其中下图的28cd表示我电脑的mac地址,f7f3表示某一蓝牙设备(我的鼠标)。
配对蓝牙键盘
配对过程你懂的
导出win的配置
管理员身份打开powershell,输入psexec64.exe -si regedit
回车,此时你就能看到28cd下多了一个文件夹,多出来的就是刚配对上的蓝牙键盘
导出选项选择txt文件
回到注册表
复制这个值到刚才导出的txt文件中,然后点击一下十进制,把十进制的值也复制过去,复制完成点击取消,不做修改。然后保存txt文件。
未复制前:
复制后:
同理复制EDIV的十进制值、address的十六进制到txt文件中
此时导出的txt为
项名称: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\28cdc4babb2c\d112ff200048
类名称: <无类>
最近写入时间: 2021/3/29 - 13:10
值 0
名称: LTK
类型: REG_BINARY
数据:
00000000 b8 90 d5 c2 be d3 5f 91 - e0 e4 9c b8 4d 41 f7 a8 ¸.Õ¾Ó_.àä.¸MA÷¨
值 2
名称: ERand
类型: REG_QWORD
数据:
00000000 2a 3d 41 2c a0 6e 1f 1b - *=A, n..
1b1f6ea02c413d2a == 1954402397518380330 (10)
值 3
名称: EDIV
类型: REG_DWORD
数据: 0x6f47 = 28487 (10)
值 4
名称: IRK
类型: REG_BINARY
数据:
00000000 d3 69 57 63 4a 0f e7 5d - 5c 53 d7 08 be 7a 68 c0 ÓiWcJ.ç]\S×.¾zhÀ
值 5
名称: Address
类型: REG_QWORD
数据:
00000000 48 00 20 ff 12 d1 00 00 - H. ÿ.Ñ..
其它无关的省略
然后找一些英文小写转大写的在线网站,把IRK、LTK转成大写并去掉其中的空格(上面txt中的连续的0和乱码字符不用管,我们不需要)
此时得到我们需要的数据
Address
D112FF200048
EDIV
0x6f47 = 28487 (10)
ERand
00000000 2a 3d 41 2c a0 6e 1f 1b
1b1f6ea02c413d2a == 1954402397518380330 (10)
1B1F6EA02C413D2A
IRK
D36957634A0FE75D5C53D708BE7A68C0
LTK
00000000 b8 90 d5 c2 be d3 5f 91 - e0 e4 9c b8 4d 41 f7 a8
B890D5C2BED35F91E0E49CB84D41F7A8
修改linux的配置
这个时候再登录linux,蓝牙虽然以前配对过,但此时已经无法继续连接了,因此我们需要修改下配置。这里选择用root账户登录,图形化操作比较简单些。下面以arch为例,debian不再赘述。
这里有两个设备(一堆冒号是一个),所以哪一个是蓝牙呢??之前配对linux的时候记录下来的是D1xx,忘记的话回头看,或者直接查看
修改配置文件info
把刚才win导出的配置粘贴进去
Address
D112FF200048
EDIV
0x6f47 = 28487 (10)
ERand
00000000 2a 3d 41 2c a0 6e 1f 1b
1b1f6ea02c413d2a == 1954402397518380330 (10)
1B1F6EA02C413D2A
IRK
D36957634A0FE75D5C53D708BE7A68C0
LTK
00000000 b8 90 d5 c2 be d3 5f 91 - e0 e4 9c b8 4d 41 f7 a8
B890D5C2BED35F91E0E49CB84D41F7A8
最后修改这个文件夹的名称为win导出的ADDRESS,记得两个字符插一个冒号。最后重启蓝牙服务即可
systemctl restart bluetooth