APP下载

不再烦人 让Windows10和Linux双系统共用蓝牙设备

2021-07-08平淡

电脑爱好者 2021年13期
关键词:本机键值编辑器

平淡

小提示

因为保存LTK信息的键值默认受系统保护,直接启动regedit.exe无法看到键值,所以这里必须使用PsExec.exe来加载启动。

了解问题产生的原因

蓝牙鼠标在和系统首次进行连接时,它们之间会进行配对,配对成功后就会生成LTK(即Long-Term Key,译为长期密钥)。这样下次需要再连接的时候,系统会检测配对设备的LTK,如果一致則成功连接,否则需要重新配对(图1)。

由于Windows10和Linux在连接蓝牙鼠标时,它们会分别生成不同的LTK,比如在Windows 10中连接蓝牙鼠标生成的LTK是A,但是切换到Linux系统中后这个连接的密钥就变为B。这样当我们再次切换到Windows 10系统中后,由于蓝牙鼠标保存的LTK仍然是B,Windows 10就会将蓝牙鼠标重新识别为新设备,因此需要重新进行配对才能正常使用。反之亦然。不过对Windows 10系统来说,成功连接后会在注册表中保存LTKA,我们可以手动将其改为LTKB。这样在Linux中连接后蓝牙鼠标保存的也是LTKB,从而实现切换到Windows 10中之后也能成功连接。

统一蓝牙鼠标的LTK

如上所述,通过手动更改Windows系统保存的LTK可以解决问题。下面我们以在Linux(以Ubuntu 20.10操作为例)中保存的LTK为准,介绍如何在Windows 10下修改LTK,使之和Liunx下显示的一致。

1.获取Ubuntu系统下的LTK

进入Ubuntu系统,按提示先连接蓝牙鼠标,成功完成连接并可以正常使用后启动终端。接着在终端输入命令“SU”并回车执行,按提示输入Ubuntu账户和登录密码。接着继续输入“cd/var/lib/bluetooth”和“Is”命令并执行,在这里可以看到一个类似“49:BA:F9:77:05:42”的目录名,这个对应的是本机MAC地址的名称(图2)。

继续输入并执行“cd 49:BA:F9:77:05:42”和“Is”命令,在该目录下还可以看到类似“29:88:5F:4E:E6:55”的子目录,这个对应的是蓝牙鼠标的MAC地址。最后在终端中输入并执行“cat info”命令显示其中“info”文件的信息(这个文件里保存LTK信息),其中[Linkkey]字段下“key=”后的代码(即95406DAD56FDFFDF42FDFF47DAFDI2EF)即为LTK代码,按提示复制并保存备用(图3)。

2.在Windows 10下更改LTK

重启电脑并切换到Windows 10系统。进入系统后先使用有线鼠标或者直接使用触摸板(请勿重新配对蓝牙鼠标,以免生成新的LTK)操作,接着到“https:∥docs.microsoft.com/en-us/sysinternals/downloads/psexec”下载PsExec.zip,然后将其全部文件解压到q:\aa备用。接着以管理员身份启动命令提示符,输入“cdg:\aa”和“PsExec.exe-s-i regedit”,回车后启动注册表编辑器(图4)。

打开注册表编辑器后依次展开[HKEY LOCAL MACHlNE\SYSTEM\Current ControlSet\services\BTH PORT\Parameters\Keys],在[Keys]键值下可以看到[49baf9770542]和[29885f4ee655]子项,这个和本机的MAC、之前成功连接的蓝牙鼠标的MAC值相对应(图5)。

切换到图5的右侧窗格,其中的“LTK”项的数据就是之前成功连接蓝牙鼠标的LTK代码。可以看到,Windows 10和Ubuntu下保存的LTK代码并不相同,这也是为什么切换系统后需要重新连接蓝牙鼠标的原因。现在按提示双击“LTK”项,在打开的窗口中将其原来的数据全部删除,然后输入和图3显示的“key=”后的数值一致的代码即可(图6)。

完成上述的操作后,在Windows 10中关闭蓝牙再开启,这样可以成功连接蓝牙鼠标。而且以后无论在哪个系统中,都可以自动连接蓝牙鼠标使用了。其他蓝牙设备的设置类似。

猜你喜欢

本机键值编辑器
基于ADS-B的防撞检测算法研究
飞机相遇模型仿真技术研究
车辆段收发车运行图编辑器的设计与实现
一键直达 Windows 10注册表编辑高招
基于VLIW目标机的ELF二进制编辑器设计与实现
FreeBSD关机重启命令
注册表值被删除导致文件夹选项成空白
“扫除”技巧之清除恶意程序