macOS 与 BootCamp 双系统共用同一蓝牙设备指引

2020-05-29 13:16:45 30点赞 181收藏 32评论

本文首发于少数派,未经允许,禁止转载。

前言

因为需要部分工作需要在 BootCamp 中完成,手头上也只有一个蓝牙音箱,每次在 macOS 与 BootCamp 中切换时,蓝牙音箱需要重新配对才可连接。故在互联网上搜寻了解决方法。

下面以手上的华为蓝牙音箱为例,其它蓝牙设备连接方法类似。如果已经连接,建议删除配对记录,重新连接。(以下方案理论上在 macOS、Windows、Linux 系统中通用,部分路径可能存在差异)

感谢 @Newlearner365 的热心协助,成功在其电脑上复现。




温馨提示

以下操作涉及修改系统文件,食用前请注意 备份!备份!备份!因此造成的一切后果,本人皆不负责




便捷方法:借助 Hackintool 导入蓝牙链接密钥至 Windows

Hackintool 是由 @headkaze 开发,用于 Hackintosh 上的一款小工具。此处借助当中的功能,为 Windows 生成蓝牙设备配对密钥的注册表文件。

本人的系统版本与使用工具的版本(macOS:10.14.6;Windows:1909;HackinTool:3.4.0) ,不同电脑、系统可能会有一定差异。

1、将蓝牙音箱分别在 macOS 与 Windows 中配对

macOS:打开系统偏好设置 → 蓝牙macOS:打开系统偏好设置 → 蓝牙


Windows:打开系统偏好设置 → 蓝牙Windows:打开系统偏好设置 → 蓝牙


2、回到 macOS,打开 Hackintool

进入「工具」选项卡,点击下方的「蓝牙」图标,输入用户密码,随后在桌面上可找到一个注册表文件。

Hackintool 导出配对密钥Hackintool 导出配对密钥


如果有不需要导入的设备,按 Option 键点击屏幕左上角的  图标,进入系统信息 → 蓝牙,找到对应设备的 MAC 地址,在注册表中删去该行即可。

配对密钥配对密钥


选择需要导入的设备选择需要导入的设备


3、进入 Windows,关闭蓝牙,导入注册表

进入系统设置,关闭电脑蓝牙与蓝牙音箱。

通过 U 盘或其它方式将注册表文件复制到 Windows 中,双击打开导入注册表。

导入注册表导入注册表


导入完成后,进入系统设置 - 蓝牙和其他设备,打开电脑蓝牙与蓝牙音箱,此时蓝牙音箱可自动连接至电脑。

连接蓝牙音箱连接蓝牙音箱




极客方法:手动修改 Windows 下的蓝牙设备密钥


此方法相对复杂,不推荐使用。

以下方法基于 pcbeta - lisai9093:解决 Windows 与 macOS 双系统下的蓝牙设备共用的问题 的教程整合而成。


1、打开终端,拷贝 macOS 中的蓝牙配对密钥

在终端中运行以下命令(命令中的「xw」需要更改为当前的用户名),输入用户密码,回车执行。

# macOS High Siera 以上

sudo defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist

# macOS High Siera 以下

sudo defaults read /private/var/root/Library/Preferences/blued.plist


执行后,找到 Link Keys 节点,拷贝对应设备的密钥。

查询蓝牙设备配对密钥查询蓝牙设备配对密钥


2、重新排序、转换格式

打开文本编辑器,这里我们需要将密钥转换为 Big Endian 格式。关于大端格式与小端格式的区别可参考 维基百科:字节顺序百度百科:Endian,此处不做过多讨论(我也不会 x。

重新排序重新排序


3、导入密钥

进入系统设置 - 蓝牙和其它设备,关闭电脑蓝牙和蓝牙音箱。

下载 PsExec Tool,使用管理员身份在 Power Shell 或命令行中运行。

.PsExec.exe -s -i regedit

通过提权工具 PsExec 运行注册表编辑工具通过提权工具 PsExec 运行注册表编辑工具


进入注册表 - HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBTHPORTParametersKeys,展开当前电脑的蓝牙适配器,找到对应设备,右键 - 修改二进制数据,将刚才重新排序的密钥复制到这里,保存,关闭。

导入配对密钥导入配对密钥

注:因在方法一中,已通过注册表修改,故此处的密钥无需修改。


4、连接

进入系统设置 - 蓝牙和其它设备,打开电脑蓝牙和蓝牙音箱,此时蓝牙音箱可自动连接至电脑。




其它方法

除了 Hackintool,还可使用 BT-LinkKeySync 来导出连接密钥,具体方法可以参照 GitHub 上的指引。不过很不幸,无法在我的电脑成功导出对应的 Plist 文件与注册表。


在覆盖顺序上,没有过多要求,使用 macOS 的 Link Key 覆盖 Windows 的,或者是使用 Windows 的 Link Key 覆盖 macOS 的,这两种方式皆可使蓝牙音箱在两边顺利连接。




原理


蓝牙设备的连接过程如上图所示,相关资料来源于 Bluetooth SIG, Inc蓝牙设备的连接过程如上图所示,相关资料来源于 Bluetooth SIG, Inc


注:以下说法可能有误,希望各位带佬斧正,不胜感激

由于蓝牙耳机连接的是同一个蓝牙适配器(同一个 MAC 地址),先前在 macOS 配对时产生的密钥会被后面 Windows 配对的密钥暂时覆盖,因此将 A / B 的密钥覆盖至 B / A 中,便可相互连接。




相关链接

工具

教程

技术文档

展开 收起
32评论

  • 精彩
  • 最新
  • 不知道买个支持多蓝牙的设备能否使用

    校验提示文案

    提交
    不可以,尝试过k380

    校验提示文案

    提交
    可能不行,道理同上

    校验提示文案

    提交
    收起所有回复
  • 黑苹果装了94322白果卡,这mac上体验非常好 [赞] 但在win上信号很差,还总是连不上。网上也找不到苹果官方的bootcamp的驱动。。 [喜极而泣] 楼主有办法吗 [喜极而泣]

    校验提示文案

    提交
    nuc吗?

    校验提示文案

    提交
    是笔记本啦 [皱眉]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 干货,赞,赏了

    校验提示文案

    提交
    谢谢(字数补丁

    校验提示文案

    提交
    收起所有回复
  • parallel desktop不就搞定了,还需要这么复杂吗?

    校验提示文案

    提交
    Parallel Desktop 无法实现蓝牙透传

    校验提示文案

    提交
    收起所有回复
  • 按方法一做完最后一步之后,win中的蓝牙设备会不停地在“已配对”和“已连接”状态跳动,无法使用。蓝牙鼠标和airpods都是这样 [喜极而泣] 求救

    校验提示文案

    提交
    双系统中按照 macOS、Windows 的顺序重新配对,然后修改

    校验提示文案

    提交
    是这么操作的。而且反复试了几次。分别删除设备重新配对也试过 [喜极而泣]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 方法一没有导入权限怎么解决啊

    校验提示文案

    提交
    按照方法二使用 PsExec 修改

    校验提示文案

    提交
    收起所有回复
  • 卧槽。。不错不错。。。

    校验提示文案

    提交
    谢谢)字数补丁

    校验提示文案

    提交
    收起所有回复
  • 也是bootcamp双系统,很奇怪的是同样是罗技鼠标产品,K380再macos配对后在win10也能用,但MX Vertical就要两边都配对才行

    校验提示文案

    提交
    蓝牙鼠标的连接不太清楚,因为手上的是 G304,没有实验的条件。不过 Vertical 推荐使用 Logitech Unify 作为连接方式

    校验提示文案

    提交
    收起所有回复
  • 不错 赏你了

    校验提示文案

    提交
    谢谢(紫薯布丁

    校验提示文案

    提交
    收起所有回复
  • 这么复杂?我记得蓝牙鼠标也是。得先在Windows连,再换macOS连

    校验提示文案

    提交
  • 两个女朋友住一屋也不方便,还是再买一个屋吧~

    校验提示文案

    提交
  • 这样是不是也能把airpods无缝切换了?

    校验提示文案

    提交
  • 不知道为什么我win7下蓝牙连接从来没成功过 15款的rmbp

    校验提示文案

    提交
  • airpods 连macbookpro 声音延迟卡顿 有没有好的解决方案。 MD101 虽然老电脑。

    校验提示文案

    提交
  • jbl蜗牛usb音箱,两个系统均免驱直接用,音质还不错

    校验提示文案

    提交
  • 问一下楼主有测试AirPods吗,为什么我用这个方法还是只能连mac,回到win就连接配对来回跳? (我感觉mac是直接用icloud同步连接的key,每次都会变成新的,才导致失效)

    校验提示文案

    提交
  • 方法一无法导入注册表怎么解决,方法二好像不适应蓝牙4.0的鼠标

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
181
扫一下,分享更方便,购买更轻松