微信扫一扫 分享朋友圈

已有 6299 人浏览分享

开启左侧

Window、Linux和macOS共享蓝牙鼠标教程(修订版)

[复制链接]
6299 25
1、前言
昨天写了一篇关于三系统共享蓝牙鼠标的请教贴,不知道里面有什么敏.感词,导致不断被审核,修改困难。刚好重新做了一遍,又有了新的发现,一并添加。
原帖见:https://bbs.pcbeta.com/viewthread-1955985-1-1.html
里面也讲到了异常简单的蓝牙3.0协议下的共享方法,如果你的主机蓝牙不支持4.0以上,可以考虑,但3.0连接慢、不稳定,不建议使用,这也是我重新修订上文的原因之一。
我的Linux是UOS V20 专业版,是基于Debian发行的,理论上与基于Ubuntu的发行版类似。

2、正文
1、先在Windows上配对成功,再在Linux上配对成功,最后在macOS上配对成功(前两个配对的目的是在系统注册表及/var/lib/bluetooth下留下基本的配置框架,最后用从macOS导出的注册表文件中的值去覆盖它。理论上也可以倒过来,但maos下的配置如何修改大部分人并不清楚,无法根据windows的信息去覆盖它)
初始的注册表信息:

2、macOS下,关闭蓝牙鼠标的电源,通过HackinTool导出蓝牙的注册表文件bluetooth.reg(根据论坛大佬的说法必须关闭蓝牙鼠标的电源,也有人说可以不关,但我实测是要关的,不关的话导出的注册表文件无法导出蓝牙鼠标的配置,而关闭后导出,我这里是导出两条,其中一条是蓝牙的,里面有EDIV、ERand,并且蓝牙地址与系统信息里面蓝牙信息是对的上的);

3、再次启动到Windows,终端管理员用户执行pstools\psexec -i -s regedit,打开注册表(不能直接运行regedit.exe,没有管理员权限是看不到keys下面的蓝牙设备及相关信息的),找到蓝牙地址,我这里是d674572985ac(论坛里大佬说windows与macOS下的蓝牙地址只差最后一位,我的差距十万八千里,百思不得其解
4、用windows下的蓝牙地址d674572985ac替换bluetooth.reg中的c984dd794f5d,然后把bluetooth.reg导入到系统注册表(用macOS下c984dd794f5d项的配置,去覆盖windows下d674572985ac项的配置)。
覆盖后的注册表信息:(注意与图1的对比:导入后注册表项还是d674572985ac,但右边的Address已经改为c984dd794f5d了,LTK等信息也被覆盖了)

重启Windows,Windows下蓝牙能用了!
5、改Linux下的配置,打开终端,sudo到root账号:
sudo -i
cd /var/lib/bluetooth/48:89:E7:2A:CF:CD     #4889E72ACFCD 是本机蓝牙控制器地址
可以看到一个目录D9:24:34:9D:A8:69,这是我的Linux上初始的蓝牙设备地址,需要改为macOS下导出的Address(c984dd794f5d),保持与macOS一致:
mv D9:24:34:9D:A8:69 C9:84:DD:79:4F:5D
6、进入到C9:84:DD:79:4F:5D,编辑info文件,其它的都不动,就改LongTermKey下的三个值:Key(LTK)EDiv(EDIV,转换为十进制)、Rand(ERand,倒序后转换为十进制),我的测试只需要这三个值及目录名就可以了,无需修改IRK、CSRK。

7、sudo systemctl restart bluetooth 或 sudo service bluetooth restart,如果不生效,重启机器。
蓝牙应该可以用了!

3、其它
1、蓝牙协议4.0及以上,每次配对,蓝牙设备地址(对应注册表中的Address)都会变,以最后一次配对的macOS下导出的Address、LTK、EDIV、ERand为准。
2、Windows下的Address以macOS导出的为准,注册表项(左侧栏)的名字不用改(改了可能会异常,需要验证);

3、Linux的目录名即是蓝牙设备地址,也需要改为macOS的Address。
4、此文中的各类地址只是我的例子,请根据自己机器的实际情况相应替换。

评论 25

shi2279  新手上路  发表于 2023-2-7 21:59 | 显示全部楼层
图怎么丢掉了?这个网站的编辑器还是有点问题。

对2.4及3.2,经测试,不能修改那个Item项的名字(d674572985ac),这个item名应该与注册表的其它地方有关联,机制与Linux是不太一样的,改了就找不到蓝牙鼠标了。

注意:Windows下Item及key都是小写十六进制,Linux下目录名和Key都是大写的十六进制。

举报 使用道具

回复 支持 反对
wzs2112  新手上路  发表于 2023-2-7 22:00 | 显示全部楼层
Mark一下,改天试一下

举报 使用道具

回复 支持 反对
derhzy  新手上路  发表于 2023-2-7 22:00 | 显示全部楼层
我的用军刀导出时没有 LTK、EDIV、ERand    那是不是这个这个鼠标不支持? 我的用的华为鼠标AP30

举报 使用道具

回复 支持 反对
goodluckfst  新手上路  发表于 2023-2-7 22:00 | 显示全部楼层
如果是蓝牙4.0及以上,肯定是有LTK、EDIV、ERand的。确认鼠标已经关闭电源,才能开始用Hackintool导出。

我这里导出了3个蓝牙,第一第三个不知道是啥,在蓝牙列表里看不见,但第二条有EDIV和ERand的就是蓝牙鼠标,而且是跟信息信息-->蓝牙中的设备地址是对应的。

举报 使用道具

回复 支持 反对
yxkmjb  新手上路  发表于 2023-2-7 22:01 | 显示全部楼层
我的鼠标同时支持蓝牙3.0和5.0,因此搜索蓝牙设备时有两个:”S1000D 3.0 Mouse“、”S1000D 5.0 Mouse“,我选择蓝牙5.0的那个就是上面的第二条,而如果选3.0的,那就类似上面第一条(蓝牙3.0导出只有1条类似”蓝牙设备地址“=LinkKey(LTK))
你看看是否有两个蓝牙设备可选。

举报 使用道具

回复 支持 反对
lanevo338t  新手上路  发表于 2023-2-7 22:02 | 显示全部楼层
按照教程已经搞定。谢谢了。。。。

举报 使用道具

回复 支持 反对
syf823  新手上路  发表于 2023-2-7 22:02 | 显示全部楼层
原来是用导出的军刀的数据 修改windows下面的注册表就行了。

举报 使用道具

回复 支持 反对
wpeng99  新手上路  发表于 2023-2-7 22:03 | 显示全部楼层
已经解决,问题在于 就是 用opencore启动的windows不行,要不用opencore引导windows才可以用

举报 使用道具

回复 支持 反对
兔司机  新手上路  发表于 2023-2-7 22:03 | 显示全部楼层
OC引导windows有很多未知的问题,我两台笔记本都是用第三方引导工具rEFInd来引导Windows、OpenCore。

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

关注

21

粉丝

17

主题
精彩推荐
热门资讯
网友晒图
图文推荐
  • 微信公众平台

  • 扫描访问手机版

Archiver|手机版|小黑屋|水窝ibm

GMT+8, 2024-11-16 08:41 , Processed in 0.120535 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2022 Comsenz Inc.