WIN10和Ubuntu共享蓝牙连接配对
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对不同),所以应该能快速确定对应的关系,寻找到该修改的设备。 ↩︎
WIN10和Ubuntu共享蓝牙连接配对相关推荐
- WIN10和Ubuntu共享蓝牙4.0连接配对,鼠标键盘等,罗技M720,小米鼠标
WIN10和Ubuntu共享蓝牙4.0连接配对,鼠标键盘等 蓝牙4.0等4.x版本的蓝牙设置和以前的不同,现在网上大量的教程里内容都是过时的/错误的(我使用的罗技M720和小米鼠标,其他低功耗蓝牙鼠标 ...
- w10添加蓝牙显示无法连接服务器失败,技术解答Win10系统下显示蓝牙已配对但未连接的修复方式...
电脑已经成为了大家生活中不可或缺的东西,而且基本上所有的用户电脑都安装了windows系统,操作系统的过程中往往会遇到一些问题,就比如Win10系统下显示蓝牙已配对但未连接的情况,如果你的电脑技术不够 ...
- Linux#Ubuntu 的蓝牙连接 不会激活GUI响应
#### Linux#Ubuntu18.08 的蓝牙连接 不会激活GUI响应 当桌面黑屏情况下,移动蓝牙连接的鼠标不会激活ubuntu的登录界面显示 Windows10 当蓝牙键盘接入是,GUI黑屏情 ...
- win10蓝牙已配对连接不上_手把手帮您win10系统显示蓝牙已配对但未连接的设置教程...
许多win10系统用户在工作中经常会遇到win10系统显示蓝牙已配对但未连接的情况,想必大家都遇到过win10系统显示蓝牙已配对但未连接的情况吧,那么应该怎么处理win10系统显示蓝牙已配对但未连接呢 ...
- win10蓝牙已配对连接不上_Win10系统显示蓝牙已配对但未连接咋办?
电脑的蓝牙设备是我们在Win10系统中电脑传输,接收文件有的小伙伴在使用的方式,安全快捷,今天看到有小伙伴在使用蓝牙的时候初选了问题,系统显示蓝牙已配对了的,但是一直不能成功连接的情况,遇到这个问题我 ...
- 【Android -- 蓝牙】蓝牙配对和蓝牙连接
文章目录 一.蓝牙配对 二.蓝牙连接 一.蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹 ...
- ubuntu ble c语言编程,Ubuntu通过蓝牙连手机上网
之前写过一篇专门针对笔记本连接iPhone上网",如今iPhone4丢了,在iPhone5未上市之前用刚买过来准备送给爸妈的两个 发现 在想实现Ubuntu通过蓝牙连接手机上网以前,必须确保 ...
- win10蓝牙android上网,win10怎么用蓝牙上网?Win10通过蓝牙连接进行共享上网的设置方法...
wifi和蓝牙都作为无线传输的常用手段,一般大家都会使用wifi热点进行共享上网,想必大家都熟悉了.其实,Win10企业版电脑也可以通过蓝牙连接进行共享上网,那么这要怎么操作?感兴趣的可以一起往下试试 ...
- Win10 蓝牙已配对但无法连接的问题
Win10 蓝牙已配对但无法连接的问题 今天打开笔记本,发现ikbc的dc87键盘的蓝牙怎么也连不上,尝试了在蓝牙设置和设备管理器里删除该设备,后再重新配对,然而无法解决. sigh- 好吧,决定开始 ...
最新文章
- centos6.3下yum安装redis
- python 字符串前面加u,r,b,f的含义
- 华农oj Problem K: 负2进制【有技巧构造/待补】
- 写个函数用来对二维数组排序
- 怎样在减少数据中心成本的同时不牺牲性能?
- 深入理解HTTP协议
- 50行代码,搞定敏感数据读写!
- 卷积神经网络架构理解
- 09年最值得期待7大IT收购:思科收购VMware
- LeetCode Two Sum
- 下载安装VS Code以及简单的配置使用
- windows网络编程-几种模式
- 2022最新Java面试宝典(史上最全,BAT大厂面试必备,用心看完该篇就够了,建议先关注点赞加收藏)
- 安装sqlyog和使用注册码
- html中的日期框怎么写,HTML5日期输入框(date)
- 大学C语言学习笔记(C语言程序设计第五版——谭浩强,翁凯C语言基础教程)基础、算法、程序结构、数组、函数、指针、枚举、结构、联合
- Docker容器网络访问慢问题
- veu创建项目,自定义配置
- linux通过修改/etc/hosts文件 添加IP地址与域名的映射
- plantuml介绍与使用