前言
因为需要部分工作需要在 BootCamp 中完成,手头上也只有一个蓝牙音箱,每次在 macOS 与 BootCamp 中切换时,蓝牙音箱需要重新配对才可连接。故在互联网上搜寻了解决方法。
下面以手上的华为蓝牙音箱为例,其它蓝牙设备连接方法类似。如果已经连接,建议删除配对记录,重新连接。(以下方案理论上在 macOS、Windows、Linux 系统中通用,部分路径可能存在差异)
感谢@Newlearner365[2]的热心协助,成功在其电脑上复现。
温馨提示
以下操作涉及修改系统文件,食用前请注意备份!备份!备份!
因此造成的一切后果,本人皆不负责。
便捷方法:借助 HackinTool 导入蓝牙链接密钥至 Windows
Hackintool[3]是由@headkaze[4]开发,用于 Hackintosh 上的一款小工具。此处借助当中的功能,为 Windows 生成蓝牙设备配对密钥的注册表文件。
本人的系统版本与使用工具的版本(macOS:10.14.6;Windows:1909;HackinTool:3.4.0),不同电脑、系统可能会有一定差异。
1、将蓝牙音箱分别在 macOS 与 Windows 中配对
macOS:打开系统偏好设置 → 蓝牙
Windows:打开系统偏好设置 → 蓝牙
2、回到 macOS,打开 HackinTool
Hackintool 导出配对密钥
配对密钥
选择需要导入的设备
3、进入 Windows,关闭蓝牙,导入注册表
进入系统设置,关闭电脑蓝牙与蓝牙音箱。
通过 U 盘或其它方式将注册表文件复制到 Windows 中,双击打开导入注册表。
导入注册表
导入完成后,进入系统设置 – 蓝牙和其他设备,打开电脑蓝牙与蓝牙音箱,此时蓝牙音箱可自动连接至电脑。
连接蓝牙音箱
极客方法:手动修改 Windows 下的蓝牙设备密钥
此方法相对复杂,不推荐使用。以下方法基于pcBeta – lisai9093:解决 Windows 与 macOS 双系统下的蓝牙设备共用的问题[5]的教程整合而成。
1、打开终端,拷贝 macOS 中的蓝牙配对密钥
在终端中运行以下命令(命令中的「xw」需要更改为当前的用户名),输入用户密码,回车执行。
# High Siera 以上sudo defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist# High Siera 以下sudodefaultsread/private/var/root/Library/Preferences/blued.plist
查询蓝牙设备配对密钥
执行后,找到 Link Keys 节点,拷贝对应设备的密钥。
2、重新排序、转换格式
重新排序
3、导入密钥
进入系统设置 – 蓝牙和其它设备,关闭电脑蓝牙和蓝牙音箱。
下载PsExec Tool[8],使用管理员身份在 Power Shell 或命令行中运行。
.\PsExec.exe -s -i regedit
进入注册表 – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\,展开当前电脑的蓝牙适配器,找到对应设备,右键 – 修改二进制数据,将刚才重新排序的密钥复制到这里,保存,关闭。
导入配对密钥
因在方法一中,已通过注册表修改,故此处的密钥已更改完成。
4、连接
进入系统设置 – 蓝牙和其它设备,打开电脑蓝牙和蓝牙音箱,此时蓝牙音箱可自动连接至电脑。
其它方法
除了 HackinTool,还可使用 BT-LinkKeySync (https://github.com/digitalbirdo/BT-LinkkeySync) 来导出连接密钥,具体方法可以参照 GitHub 上的指引。不过很不幸,无法在我的电脑成功导出对应的 Plist 文件与注册表。
在覆盖顺序上,没有过多要求,使用 macOS 的 Link Key 覆盖 Windows 的,或者是使用 Windows 的 Link Key 覆盖 macOS 的,这两种方式皆可使蓝牙音箱在两边顺利连接。
原理
以下说法可能有误,希望各位带佬斧正,不胜感激
相关链接工具
??GitHub: HackinTool[9]??GitHub: BT-LinkKeySync – macOS Catalina Support[10]??Microsoft: PsExec Tool[11]
教程
??CSDN – 飓风7494: Win 10 和 Ubuntu 共享蓝牙 4.0 连接配对[12]??丰富/悠然:Windows Linux macOS 三大系统共用蓝牙鼠标[13]??InsanelyMac – camoguy: Dual Boot Bluetooth Pairing Solved[14]??南浦月:Linux 与 Windows 双系统共享蓝牙鼠标[15]??pcBeta – lisai9093:解决 Windows 与 macOS 双系统下的蓝牙设备共用的问题[16]
技术文档
??Bluetooth SIG, Inc – Kai Ren: Bluetooth Pairing Part[17]
引用链接
[1]少数派:macOS 与 BootCamp 双系统共用同一蓝牙设备指引:https://sspai.com/post/60724[2]@Newlearner365:https://www.newlearner.site/[3]Hackintool:https://github.com/headkaze/Hackintool[4]@headkaze:https://github.com/headkaze/Hackintool[5]pcBeta – lisai9093:解决 Windows 与 macOS 双系统下的蓝牙设备共用的问题:http://bbs.pcbeta.com/viewthread-1034129-1-1.html[6]维基百科:字节顺序:https://zh.wikipedia.org/wiki/字节序[7]百度百科:Endian:https://baike.baidu.com/item/Endian/[8]PsExec Tool:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec[9]GitHub: HackinTool:https://github.com/headkaze/Hackintool[10]GitHub: BT-LinkKeySync – macOS Catalina Support:https://github.com/digitalbirdo/BT-LinkkeySync/issues/17[11]Microsoft: PsExec Tool:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec[12]CSDN – 飓风7494: Win 10 和 Ubuntu 共享蓝牙 4.0 连接配对:https://blog.csdn.net/huyuan7494/article/details/73571948[13]丰富/悠然:Windows Linux macOS 三大系统共用蓝牙鼠标:https://www.kaaer.cn/archives/869[14]InsanelyMac – camoguy: Dual Boot Bluetooth Pairing Solved:https://www.insanelymac.com/forum/topic/268837-dual-boot-bluetooth-pairing-solved/[15]南浦月:Linux 与 Windows 双系统共享蓝牙鼠标:https://blog.nanpuyue.com/2018/040.html[16]pcBeta – lisai9093:解决 Windows 与 macOS 双系统下的蓝牙设备共用的问题:http://bbs.pcbeta.com/viewthread-1034129-1-1.html[17]Bluetooth SIG, Inc – Kai Ren: Bluetooth Pairing Part:https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/