jamyu 发表于 2018-4-13 14:38

MacOS、Windows、Linux蓝牙4.0鼠标共用配对

蓝牙4.0LE鼠标,尝试了许多方法。鼠标在Windows 10下配对成功后 将对应的 LTK LRK ERAND EDIV 值写入到Linux下蓝牙配置文件info中能够成功共用,两个系统鼠标操作正常,但将对应数值写入到 MacOS 蓝牙配置文件com.apple.bluetoothd.plist中(注意HEX转换)后 ,MacOS下显示已配对,操作鼠标鼠标没反应,蓝牙设备显示已连接然后断开。

反过来先在MacOS下配对,MacOS下使用正常,然后尝试将配对成功的com.apple.bluetoothd.plist中LTK LRK ERAND EDIV 数据写入到Windows注册表和Linux配置文件Info中,Windows和Linux下也是下显示已配对,操作鼠标鼠标没反应,蓝牙设备显示已连接然后断开。

通过反复试验,发现三个系统中 LRK的值是一致的,但是始终是Windows和Linux可以共用,MacOS则不可以,不知道MacOS的蓝牙LE连接方式有不同还是其配对数据另有加密导致不可共用。

求牛人解答!

MacOS蓝牙配置参考: https://bbs.pcbeta.com/viewthread-1760493-1-1.html
Linux蓝牙配置方法参考:https://blog.csdn.net/huyuan7494/article/details/73571948

指有你 发表于 2018-4-13 15:37

帮顶,关注~~~

ike1988 发表于 2018-4-13 16:05

是不是写入方法不对?比如10进制和16进制的区别,或者需要反向写入。

carbonjiao 发表于 2018-4-13 16:07

按照这个帖子https://bbs.pcbeta.com/viewthread-1761704-1-14.html ,
我的 Hign Serria 和 win10 蓝牙可以不重新配对,

你可以再对应搞搞 linux的。。。

jamyu 发表于 2018-4-13 16:48

本帖最后由 jamyu 于 2018-4-13 17:17 编辑

carbonjiao 发表于 2018-4-13 16:07 https://www.pcbeta.com/static/image/common/back.gif
按照这个帖子https://bbs.pcbeta.com/viewthread-1761704-1-14.html ,
我的 Hign Serria 和 win10 蓝牙 ...
这个帖子的方法只能用在蓝牙3.0的鼠标上,也就是使用 Link-key ID。蓝牙LE的不同的。

附上三个系统的配置供参考。(MacOS的不能用)



Windows 10 Reg

linux info

MacOS plist



n353986879 发表于 2018-4-13 18:12

免驱动的都是蓝牙

jamyu 发表于 2018-4-13 19:36

n353986879 发表于 2018-4-13 18:12 https://www.pcbeta.com/static/image/common/back.gif
免驱动的都是蓝牙

这个帖子不是讨论免驱动,而是讨论配对的问题

jamyu 发表于 2018-4-15 23:58

本帖最后由 jamyu 于 2018-4-16 00:03 编辑

庆祝一下,终于成功解决MacOS、Windows、Linux蓝牙4.0鼠标共用配对的问题了!并且也在
https://www.insanelymac.com/foru ... nts#comment-2609990
帖子上做了回复。

关于MacOS与不同系统的HEX格式是否需要 Big-Endian, Little-Endian转换,实在是弄不清楚,一个一个尝试实在工作量太大。于是使用Wireshark捕获蓝牙连接的数据包查看配对数据并在不同系统比较,终于得到在MacOS中应该正确写入的配对数值,成功实现三个系统共用一组配对数据。下面贴出三个系统成功配对的 LRK LTK RAND EDIV 数据配置供大家参考。(并不是所有的HEX键值都需要反转哦)

基本规则是:
IRK(Windows)-<转大写>-IdentityResolvingKey(Linux)—<HEX反转>—IRK(MacOS)
LTK(Windows)—<转大写>—LongTermKey(Linux)—<HEX直接带入>—LTK(MacOS)
ERAND(Windows)—<转DEC>—Rand(linux)—<HEX直接带入>—RAND(MacOS)
EDIV(Windows)—<转DEC>—EDIV(Linux)—<HEX反转>—EDIV(MacOS)
各系统数据:

cabala 发表于 2018-4-16 00:24

mark一下备用

carbonjiao 发表于 2018-4-16 10:23

牛掰。。。。。。。。。。。。。。。。。。。。

wp8student 发表于 2018-4-16 19:42

jamyu 发表于 2018-4-15 23:58 https://www.pcbeta.com/static/image/common/back.gif
庆祝一下,终于成功解决MacOS、Windows、Linux蓝牙4.0鼠标共用配对的问题了!并且也在
https://www.insan ...

不错,我虽然是做测试的,但是没有其它硬件做测试,给你10010个赞

角容 发表于 2018-4-16 20:39

留个记号,以后可能用的上,呵呵

iepyawyygy 发表于 2018-4-16 21:42

很实用的技能

芦苇602 发表于 2018-4-23 21:23

楼主,你好,我的是罗技的蓝牙鼠标,连上win10后注册表查看,比你的教程要多两项目;
CSRK和OutboundSignCounter


按照你的教程,不成功,请你再指导一下;

jamyu 发表于 2018-4-25 15:58

芦苇602 发表于 2018-4-23 21:23 https://www.pcbeta.com/static/image/common/back.gif
楼主,你好,我的是罗技的蓝牙鼠标,连上win10后注册表查看,比你的教程要多两项目;
CSRK和OutboundSignC ...

罗技和微软的的应该需要增加填写 CSRK的值。你可以看下你macos下配对成功的 plist里面定义有哪些项目。我手上没有相应硬件无法测试。假设只需要这一个数值就很好办。
windows CSRK值是可以直接带入Linux中,至于MACOS你就只能试了(HEX直接带入,和反向两种)就两种情况,一试就OK了。

或者你用我上面的抓包方法去抓包分析。

rodren 发表于 2018-4-25 21:43

很好的教材

终于不用在为每换个系统重新在适配一下 鼠标了
但为什么我 mac下复制 提示 找不到 文件或文件夹呢

jamyu 发表于 2018-4-26 09:48

rodren 发表于 2018-4-25 21:43 https://www.pcbeta.com/static/image/common/back.gif
很好的教材

终于不用在为每换个系统重新在适配一下 鼠标了


High Sierra 下的配对文件数据保存在/private/var/root/Library/Preferences/com.apple.bluetoothd.plist 文件中。
旧版 MacOS 配对文件数据保存在/private/var/root/Library/Preferences/blued.plist 文件中。
以上文件需要 root权限访问的。

芦苇602 发表于 2018-4-26 11:07

jamyu 发表于 2018-4-25 15:58 https://www.pcbeta.com/static/image/common/back.gif
罗技和微软的的应该需要增加填写 CSRK的值。你可以看下你macos下配对成功的 plist里面定义有哪些项目。我 ...

谢谢,今天下班回家再试试;

rodren 发表于 2018-4-28 15:05

jamyu 发表于 2018-4-26 09:48 https://www.pcbeta.com/static/image/common/back.gif
High Sierra 下的配对文件数据保存在/private/var/root/Library/Preferences/com.apple.bluetoothd.pli ...

谢谢回复我在看看

apple99 发表于 2018-6-4 21:16

很实用的技能
页: [1] 2 3 4 5 6
查看完整版本: MacOS、Windows、Linux蓝牙4.0鼠标共用配对