WIN10和Ubuntu共享蓝牙连接配对

  • 基本想法
  • 对于蓝牙3.0设备
  • 对于蓝牙4.0设备
    • 流程
      • 0.UBUNTU下配对蓝牙设备
      • 1.查看Windows10下的牙蓝信息
      • 2.修改UBUNTU下蓝牙信息:

基本想法

蓝牙设备需要与系统做好连接(及相应的标记)才能工作。当蓝牙设备与一个系统连接时,双方就记下了相应的信息,以确保同步双方相互识别且不会误连接到其它设备。所以,换一个新系统重新连接蓝牙设备后,新系统与设备会同时修改相应的信息。因此,双系统同时连接同一蓝牙设备,即需要在保持蓝牙内标记不变的情况下,将双系统内关于蓝牙的信息变得统一。

对于蓝牙3.0设备

请参考此教程:http://www.linuxdiyf.com/linux/29086.html
核心是将Windows与ubuntu系统下的linkkey调整至相同,修改Win或Ubuntu系统均可
(未实测)

对于蓝牙4.0设备

本方案基于Winows10系统内蓝牙信息,修改UBUNTU蓝牙设备信息,达到双系统直接可用的目的。
流程照搬https://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html内容,亲测可行(鼠标及键盘),参考部分其它流程修改,作笔记及部分思考。
实测设备:
笔记本: DELL Latitude 5490
蓝牙鼠标:Logitech M720
蓝牙键盘:Logitech K375s
系统:
Windows: Windows 10 64bit(博主的非主要系统,其它设置忘记了)
Linux: 4.15.0-58-generic #64~16.04.1-Ubuntu

流程

0.UBUNTU下配对蓝牙设备

0.0 配对蓝牙设备
配对蓝牙,请自行完成。是为了预先生成相应的配制文件,后面只需修改参数信息。(如果非常了解相关内容,可以自己编写相应文件和权限,可跳过,非常不推荐)。
重启至Windows

1.查看Windows10下的牙蓝信息

1.0 配对蓝牙设备
重新配对蓝牙设备,请自行完成

1.1 权限问题
Windows10下,蓝牙信息在注册表内容需要借助软件获取:psexec.exe
下载到某文件夹下,如用户\Downloads

1.2 蓝牙信息导出
管理员权限下运行cmd.exe(在C:\Windows\System32下,其实Windows不区分大小写,所以……)
通过资源管理器(或“我有电脑”)进入C:\Windows\System32目录,右键点击cmd.exe,点出以管理员身份运行
然后输入

cd c:\Users\用户\Downloads
psexec.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys

将相关注册表信息导出于C:\BTKeys.reg,之后linux下可直接以文本形式查看。推荐gedit(vim有可能有乱码情况,懒得折腾编码了)
如:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys][HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值]
"MasterIRK"=hex:……[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值\设备1地址值]
"LTK"=hex:……
"KeyLength"=dword:……
"ERand"=hex(b):……
"EDIV"=dword:……
"IRK"=hex:……
"Address"=hex(b):……
"AddressType"=dword:……
"CSRK"=hex:……
"OutboundSignCounter"=dword:……
"MasterIRKStatus"=dword:……
"AuthReq"=dword:……[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值\设备2地址值]
……

上栏中文部分为数值

2.修改UBUNTU下蓝牙信息:

重启至ubuntu系统
查看蓝牙设备:

bluetoothctl

一般显示出蓝牙设备信息,例如:

    [NEW] Controller 蓝牙控制器地址 XXXXXXX [default][NEW] Device XX:XX:XX:XX:XX:XX Keyboard K370/K375[NEW] Device 鼠标蓝牙地址 M720 Triathlon[NEW] Device XX:XX:XX:XX:XX:XX Redmi AirDots_R

退出

quit

第一行是电脑 蓝牙控制器地址
后面三行是相应的设备:博主的是键盘、鼠标、耳机
现以鼠标为例。

2.1 鼠标蓝牙地址检查
蓝牙控制器地址 应当 与蓝牙控制器地址值(reg文件)相对应;
鼠标蓝牙地址 需要 与 C:\BTKeys.reg中的 某蓝牙设备地址值 (reg文件)相对应,如:
84:AB:D4:A2:5E:E1 <=> 84abd4a25ee1
博主这边是 鼠标蓝牙地址设备1地址值 相对应。 如果略有不同,例如:84:AB:D4:A2:5E:E0 <=> 84abd4a25ee1,需要在ubuntu下修改鼠标蓝牙地址对应设备地址 (博主的情况是设备1地址)以确保对应。1

2.2 鼠标蓝牙参数修正
相关信息在/var/lib/bluetooth/之下。因为权限问题,请通过su帐户操作:

sudo su
cd /var/lib/bluetooth/蓝牙控制器地址
ls

将显示出所有蓝牙设备文件夹和其它文件。文件夹名字就是设备地址。如需要修改(见2.1),通过重命名完成,e.g.

mv 鼠标蓝牙地址 对应设备地址 # e.g. mv 84:AB:D4:A2:5E:E0 84:AB:D4:A2:5E:E1

然后,查看并修改蓝牙设备的参数:

cat 对应设备地址/info

将显示

[General]
Name=M720 Triathlon
……[ConnectionParameters]
……[IdentityResolvingKey]
Key=……[LocalSignatureKey]
Key=……
……[LongTermKey]
Key=……
Authenticated=0
EncSize=……
EDiv=……
Rand=……[DeviceID]
……

修改info文件:从C:\BTKeys.reg获取相应信息,填入以下几处:

  • LTK 去除"hex:"、",",字母转成大写 => LongTermKey 下的 Key
  • KeyLength 去除"dword:",数字变成10进制 => LongTermKey 下的 EncSize
  • ERand 去除"hex(b):",逆序排列,再去除",",将所得长数字变成10进制 => LongTermKey 下的 Rand,例如hex(b):f5,d4,ac,c1,17,f2,63,80 => 8063f217c1acd4f5 => 9251504243396629749
  • EDIV 去除"dword:",数字变成10进制 => LongTermKey 下的 EDiv
  • CSRK去除"hex:"、",",字母转成大写 => LocalSignatureKey 下的 Key
  • IRK去除"hex:"、",",字母转成大写 => IdentityResolvingKey 下的 Key

重启蓝牙服务后,鼠标应当可用

    service bluetooth restart

完成


  1. 注:只有一个设备时,自然知道是一一对应;多个设备时,由博主经验,二者只会有少量不对应点(六对数值中有1对不同),所以应该能快速确定对应的关系,寻找到该修改的设备。 ↩︎

WIN10和Ubuntu共享蓝牙连接配对相关推荐

  1. WIN10和Ubuntu共享蓝牙4.0连接配对,鼠标键盘等,罗技M720,小米鼠标

    WIN10和Ubuntu共享蓝牙4.0连接配对,鼠标键盘等 蓝牙4.0等4.x版本的蓝牙设置和以前的不同,现在网上大量的教程里内容都是过时的/错误的(我使用的罗技M720和小米鼠标,其他低功耗蓝牙鼠标 ...

  2. w10添加蓝牙显示无法连接服务器失败,技术解答Win10系统下显示蓝牙已配对但未连接的修复方式...

    电脑已经成为了大家生活中不可或缺的东西,而且基本上所有的用户电脑都安装了windows系统,操作系统的过程中往往会遇到一些问题,就比如Win10系统下显示蓝牙已配对但未连接的情况,如果你的电脑技术不够 ...

  3. Linux#Ubuntu 的蓝牙连接 不会激活GUI响应

    #### Linux#Ubuntu18.08 的蓝牙连接 不会激活GUI响应 当桌面黑屏情况下,移动蓝牙连接的鼠标不会激活ubuntu的登录界面显示 Windows10 当蓝牙键盘接入是,GUI黑屏情 ...

  4. win10蓝牙已配对连接不上_手把手帮您win10系统显示蓝牙已配对但未连接的设置教程...

    许多win10系统用户在工作中经常会遇到win10系统显示蓝牙已配对但未连接的情况,想必大家都遇到过win10系统显示蓝牙已配对但未连接的情况吧,那么应该怎么处理win10系统显示蓝牙已配对但未连接呢 ...

  5. win10蓝牙已配对连接不上_Win10系统显示蓝牙已配对但未连接咋办?

    电脑的蓝牙设备是我们在Win10系统中电脑传输,接收文件有的小伙伴在使用的方式,安全快捷,今天看到有小伙伴在使用蓝牙的时候初选了问题,系统显示蓝牙已配对了的,但是一直不能成功连接的情况,遇到这个问题我 ...

  6. 【Android -- 蓝牙】蓝牙配对和蓝牙连接

    文章目录 一.蓝牙配对 二.蓝牙连接 一.蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹 ...

  7. ubuntu ble c语言编程,Ubuntu通过蓝牙连手机上网

    之前写过一篇专门针对笔记本连接iPhone上网",如今iPhone4丢了,在iPhone5未上市之前用刚买过来准备送给爸妈的两个 发现 在想实现Ubuntu通过蓝牙连接手机上网以前,必须确保 ...

  8. win10蓝牙android上网,win10怎么用蓝牙上网?Win10通过蓝牙连接进行共享上网的设置方法...

    wifi和蓝牙都作为无线传输的常用手段,一般大家都会使用wifi热点进行共享上网,想必大家都熟悉了.其实,Win10企业版电脑也可以通过蓝牙连接进行共享上网,那么这要怎么操作?感兴趣的可以一起往下试试 ...

  9. Win10 蓝牙已配对但无法连接的问题

    Win10 蓝牙已配对但无法连接的问题 今天打开笔记本,发现ikbc的dc87键盘的蓝牙怎么也连不上,尝试了在蓝牙设置和设备管理器里删除该设备,后再重新配对,然而无法解决. sigh- 好吧,决定开始 ...

最新文章

  1. centos6.3下yum安装redis
  2. python 字符串前面加u,r,b,f的含义
  3. 华农oj Problem K: 负2进制【有技巧构造/待补】
  4. 写个函数用来对二维数组排序
  5. 怎样在减少数据中心成本的同时不牺牲性能?
  6. 深入理解HTTP协议
  7. 50行代码,搞定敏感数据读写!
  8. 卷积神经网络架构理解
  9. 09年最值得期待7大IT收购:思科收购VMware
  10. LeetCode Two Sum
  11. 下载安装VS Code以及简单的配置使用
  12. windows网络编程-几种模式
  13. 2022最新Java面试宝典(史上最全,BAT大厂面试必备,用心看完该篇就够了,建议先关注点赞加收藏)
  14. 安装sqlyog和使用注册码
  15. html中的日期框怎么写,HTML5日期输入框(date)
  16. 大学C语言学习笔记(C语言程序设计第五版——谭浩强,翁凯C语言基础教程)基础、算法、程序结构、数组、函数、指针、枚举、结构、联合
  17. Docker容器网络访问慢问题
  18. veu创建项目,自定义配置
  19. linux通过修改/etc/hosts文件 添加IP地址与域名的映射
  20. plantuml介绍与使用

热门文章

  1. 解决Chrome谷歌浏览器Adobe Flash Player 插件已被屏蔽的问题
  2. 【愚公系列】2022年10月 微信小程序-电商项目-小微商户支付功能前申请准备工作
  3. Python爬虫入门教程06:爬取数据后的词云图制作
  4. 【C语言入门游戏】三子棋的实现———【保姆级教学】
  5. 让代码飞起来,可以很清晰的分清代码 彩虹括号
  6. 不了解外贸装箱,这一篇够够的
  7. 【数据结构(25)】5.7 哈夫曼树及其应用
  8. 一些iOS实用Demo
  9. 大学的终结,终结了什么???
  10. android studio导入第三方库引发的问题和解决方法