- 积分
- 249
- 最后登录
- 2024-4-5
- 精华
- 0
- 阅读权限
- 30
- 主题
- 56
- UID
- 339770
- 帖子
- 548
- PB币
- 1041
- 威望
- 5
- 贡献
- 0
- 技术
- 10
- 活跃
- 1564
- UID
- 339770
- 帖子
- 548
- PB币
- 1041
- 贡献
- 0
- 技术
- 10
- 活跃
- 1564
|
本帖最后由 allegro 于 2018-12-28 23:02 编辑
书接上回(上回在这里https://bbs.pcbeta.com/viewthread-1797066-2-1.html),近些天闲来无事又开始折腾。通过对windows注册表和Mac配置文件的分析,发现能够在多系统下依次配对直接使用的,是使用SPP协议的设备,而使用BLE协议的每次配对设备地址都会发生随机变化。就像狗熊掰棒子一样,配对成功一个,前一个系统里就连不上了。那么众多前辈一系列的方法、工具都是针对BLE蓝牙鼠标的,如果你的鼠标是SPP协议,或者是双栈的但优先SPP,请忽略。
上回说到因为Windows注册表里保存蓝牙信息的位置太多,所以采用以在Windows里提取到的蓝牙信息为基础,去修改Linux和macOS下的参数,但macOS下修改参数后仍需使用LightBlue这个工具来做一次"非配对"连接。可这个LightBlue在复杂蓝牙环境(附近蓝牙设备过多)很难连接,只能拼人品。所以这次我重写了三个平台的工具链,从macOS系统提取蓝牙信息,分别导入到Windows和Linux,不再依赖其他工具。
使用方法:
1. 分别在各个系统配对,确认正常使用,以便生成基本的配置信息结构,最后在macOS下配对。
2. 在macOS系统使用getbtinfo来提取蓝牙信息,打开一个终端窗口,命令:python getbtinfo.py。如果你配对过多个BLE蓝牙设备,会列出设备名称让你选择,成功后会在桌面生成BTFix文件夹,里面的BTInfo.ini就是提取到的蓝牙信息,把这个文件复制到Windows和Linux系统去。
3. 进入Windows系统,使用FixBT-win.exe来导入蓝牙信息,这里还是需要使用psexec这个工具来辅助,首先用管理员身份打开命令行窗口,命令:PsExec64.exe -s -i FixBT-win.exe BTInfo.ini。要注意的是FixBT-win.exe前面要写上完整的绝对路径。如果你的系统里配对过多个蓝牙设备,也需要你选择需替换的设备名称,成功完成后重启Windows,鼠标就可以用了。
4. 进入Linux系统,使用fixbt-lnx来导入蓝牙信息,命令:sudo python fixbt-lnx.py BTInfo.ini。输入密码,如果配对过多个蓝牙设备也需要选择一下,成功后重启系统或蓝牙服务,鼠标就可以用了。
我的测试环境是:
1. macOS Mojave(10.14.2)
2. Win10 专业工作站版 [版本 10.0.17763.195]
3. Parrot OS 4.4,理论上debian系的ubuntu等都可以,其他发行版未测试
python代码在2.7版本调试通过,不保证其他版本是否有兼容问题
工具下载:
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
2
查看全部评分
-
|