多个系统使用同一蓝牙键盘

多个系统使用同一蓝牙键盘

缘起

最开始有这个需求是安装黑苹果后,发现蓝牙键盘需要每次都重新配对才能使用。由于自己的键盘不是那种高级的、能够硬切换或者带有多个dongle的设备,因此只能尝试从原理上解决这个问题。

查阅资料后发现,蓝牙设备的LinkKey具有唯一性,类似于MAC地址的性质。因此,需要找到的方案便是将Windows和macOS的键值统一,从而让两个系统自动连接。

继续查阅资料发现大致步骤如下:首先在Windows下配对蓝牙键盘,然后重启进入macOS配对键盘,并读取 /private/var/root/Library/Preferences/blued.plist 或 com.apple.bluetoothhd.plist 文件中LinkKeys字典的键值对,Key是设备编号Value是配对编码。记录其中的Value,回到Windows中以高权限(psexec.exe)运行注册表程序(regedit.exe),并在如下注册表条目中修改键值。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys

打开对应设备编号的键值,清空原先键值并手动填入大端序与小端序转换后的Value即能配对。一般来说完成修改后立即配对,无需重新启动。

挫折

在同一设备的Windows和macOS下的配置并不复杂,只需重启两次即可完成。但这次我遇到了新的情景:如何将蓝牙键盘配对到两台macOS设备?按照之前的经验,我的想法是将 blued.plist 拷贝到新的电脑。但如此操作后发现并不生效。由于其中一台是 macOS Sierra(10.12.6) 系统,而另一台是 macOS High Sierra(10.13.4) 系统,二者的蓝牙驱动版本不同;另外,一台是 MacBook Air 一台是黑苹果 MacBook Pro,二者的配置也不尽相同。在继续想办法的过程中发现二者许多配置文件存在差异。

通过一定调查和猜想,我认为主要需要修改的文件分别为

/private/var/root/Library/Preferences/blued.plist
/private/var/root/Library/Preferences/com.apple.bluetoothhd.plist
/Library/Preferences/com.apple.Bluetooth.plist

其中前二者记录了配对键值,最后一个则记录了图形界面中展示的设备列表相关数据。一番修改过后,正当我以为大功告成时,系统却抛出“无法连接到此设备”的提示。重启重设均告失败。网上搜索后依然没有解决方案。或许需要咨询macOS系统蓝牙功能相关人员才能了解了……

总结

网上所有相关内容均未能攻破修改macOS中配置表的难题,希望看到这篇博客的同学能够继续探索,最终找到多台Mac共用蓝牙设备的方法。

Chen Ting

Chen Ting

The page aimed to exhibit activities & achievements during Ting's undergraduate & graduate period. Meanwhile, other aspects such as lifestyles, literary work, travel notes, etc. would interweave in the narration.

Leave a Comment

Disqus might be GFW-ed. Excited!