在mac和Win中同时使用蓝牙设备

 果农   2020-01-01 13:08   110 人阅读  0 条评论

命令

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

{
    LinkKeys =     {
        "58-fb-84-52-22-a3" =         {
            "00-22-48-da-c8-3a" = <04a236de b0eeae1a c26e56d4 1252d9ac>;
            "40-ef-4c-81-4f-09" = <82c6395b d7ad026f bcb58563 e7301cae>;
        };
        "ac-d1-b8-c0-8b-be" =         {
            "00-22-48-da-c8-3a" = <9be19cb9 c3ce003a ca8b575a a3e4cb09>;  //微软鼠标
            "04-02-1f-18-2f-4f" = <359d30b8 2cfc5dfe e485f740 1fa60fe3>;  //安卓手机
            "40-ef-4c-81-4f-09" = <ef4be0b4 c8e79bb7 e094f97c 631f55f0>;  //音箱
            "ac-bc-32-e2-51-3d" = <090f505e 147ff211 ee4c9c7a feadc806>;  //MM2鼠标
        };
    };
    MagicCloudPairingMasterHint = <17d6ce83 1f8b9b9c e66c5182 fa96f3df>;
    MagicCloudPairingMasterKey = <544fba9f e9177870 891dacc2 c95cfd83>;
    SMPDistributionKeys =     {
        "ac-d1-b8-c0-8b-be" =         {
        };
    };
}
在win下的:
58b31a90 f91b9ce7 d45db6d2 33b6b00a
转换后:
0ab0b633 d2b65dd4 e79c1bf9 901ab358

在MAC下最新的(原文件一直不变,只好干掉它重来了com.apple.bluetoothd.plist):
1e72ea53 36e8b2ae 5a226e0a 336d27ba
转换后:
ba276d33 0a6e225a aeb2e836 53ea721e

当你用蓝牙鼠标或者键盘,在Windows和mac之间切换时,每次都需要重新配对设备才能使用,相当繁琐浪费时间。网上有别的说法教你不适用pin code连接蓝牙鼠标,但实际操作后并不一定成功,特别是针对win8 和山狮这些新系统。这里介绍一下在有安全码配对的情况下同时连接设备,以鼠标为例。

  1. 先在windows下配对鼠标,重启进mac并正常配对鼠标。这时的鼠标只能自动连接mac,而登录win不能自动连接。鼠标里记录的安全码永远是与最后配对的系统相匹配的。
  2. 安全码在mac系统下的位置为/private/var/root/Library/Preferences/blued.plist
    可以命令行下
    sudo defaults read /private/var/root/Library/Preferences/blued.plist
    找到如下格式的32位密匙:
    记录下来。
  3. 安全码的转换,由于win与mac存储数据的格式不同,win为big endian,而mac默认little endian,因此蓝牙配对密匙需要转换。方法和在win的注册表里提取声卡pin configuration类似。
    从最右边一组开始,每两个数字一组放到最前。
    b02c6657 ==> 57 66 2c b0
    4ac87ced ==> ed 7c c8 4a
    fa02804c ==> 4c 80 02 fa
    88bd790a ==> 0a 79 bd 88
    最后结果为57 66 2c b0 ed 7c c8 4a 4c 80 02 fa 0a 79 bd 88。这样就得到了windows可以识别的配对密匙。
  4. 安全码在win下的位置为HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys( device ID)\
    当你打开注册表这个位置时会发现权限不够,这是需要使用technet工具,名叫psexec,请自行百度下载放到system32目录,然后使用管理员权限打开cmd,输入:
    psexec -s -i regedit
    这时打开的注册表就有权限进行关键内容的修改了。进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys( device ID)\右键点击修改二进制值。把16个两位数替换为刚才转换得到的配对密匙。
    确认,不用重启蓝牙鼠标就能自动连接上了!
  5. (补充内容) 想要同时自动连接ubuntu也是可行的。
    linux下正常配对设备后,安全码会出现在以下路径 /var/lib/bluetooth/AA:11:11:11:11:11/linkkeys,其中包含了如下格式的代码 (不存在的话直接新建此文件)BB:22:22:22:22:22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0 4
    其中AA:11:11:11:11:11为电脑蓝牙地址,BB:22:22:22:22:22为移动设备蓝牙地址。“0 4”代表蓝牙设备类型。“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ”为配对密匙。linux下密匙格式与win相同,只需把中间的空格全部去掉,得到32位的值。
    最后替换配对密匙,如:7c:1e:52:67:61:70 57662cb0ed7cc84a4c8002fa0a79bd88 0 4
    最后需要重启ubuntu,才能生效并自动配对蓝牙鼠标。
    PS: 按其他顺序配对各系统蓝牙,并修改安全密匙都是可行的。只需要记住替换的密匙永远是来自最后配对的系统,并注意格式转换。
    支持了。虽然论坛已经有人发过了
本文地址:https://haolie.net/post/728.html
版权声明:本文为原创文章,版权归 果农 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?