Mar*_*res 138 dual-boot windows bluetooth linux-mint
在双启动 Windows 7/10 和 Linux Mint/Ubuntu 时,您可能会发现自己必须一次又一次地重新配对蓝牙设备。每次切换操作系统时都会发生这种情况。
现在,你如何防止这种情况?
我回答与下面的指南,已在Ubuntu 14.4和Linux Mint的17.2,17.3和现在Linux Mint的18测试我自己的问题X。
Mar*_*res 205
基本上,当您配对设备时,您的蓝牙服务会生成一组唯一的配对密钥。首先,您的计算机会存储蓝牙设备的 MAC 地址和配对密钥。其次,您的蓝牙设备会存储您计算机的 MAC 地址和匹配的密钥。这通常工作正常,但您的蓝牙端口的 MAC 地址在 Linux 和 Windows 上将相同(它是在硬件级别设置的)。因此,当您在 Windows 或 Linux 中重新配对设备并生成新密钥时,该密钥会覆盖之前存储在蓝牙设备上的密钥。Windows 会覆盖 Linux 密钥,反之亦然。
蓝牙 LE 设备:这些设备的配对方式可能不同。我没有调查过自己,但这可能有助于双启动蓝牙 LE(低功耗)设备配对
使用下面的说明,我们将首先将您的蓝牙设备与 Ubuntu/Linux Mint 配对,然后我们将配对 Windows。然后我们将返回到我们的 Linux 系统并将 Windows 生成的配对密钥复制到我们的 Linux 系统中。
psexec -s -i regedit.exe从 Windows使用(更难)。您需要psexec正常 regedit 没有足够的权限来显示此值。
cmd,然后右键单击 CMD,然后单击“以管理员身份运行”。)psexec -s -i regedit.exeHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys。如果没有CurrentControlSet,请尝试ControlSet001。使用chntpw?从你的Linux发行版(容易)开始在那么一个终端:
sudo apt-get install chntpw
挂载 Windows 系统驱动器
cd /[WindowsSystemDrive]/Windows/System32/config
chntpw -e SYSTEM 打开一个控制台
在该控制台中运行这些命令:
> cd CurrentControlSet\Services\BTHPORT\Parameters\Keys
> # if there is no CurrentControlSet, then try ControlSet001
> # on Windows 7, "services" above is lowercased.
> ls
# shows you your Bluetooth port's MAC address
Node has 1 subkeys and 0 values
key name
<aa1122334455>
> cd aa1122334455 # cd into the folder
> ls
# lists the existing devices' MAC addresses
Node has 0 subkeys and 1 values
size type value name [value if type DWORD]
16 REG_BINARY <001f20eb4c9a>
> hex 001f20eb4c9a
=> :00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...ignore..chars..
# ^ the XXs are the pairing key
Run Code Online (Sandbox Code Playgroud)
记下哪个蓝牙设备 MAC 地址与哪个配对密钥匹配。Mint/Ubuntu 之间不需要空格。?忽略:00000.
sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys - [蓝牙的MAC地址]应该是该蓝牙文件夹中唯一的文件夹。
该文件应如下所示:
[Bluetooth MAC] [Pairing key] [digits in pin] [0]
AA:11:22:33:44:55 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 5 0
00:1D:D8:3A:33:83 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 4 0
Run Code Online (Sandbox Code Playgroud)
将 Linux 配对密钥更改为 Windows 配对密钥,减去空格。
切换到root: su -
cd 到您的蓝牙配置位置 /var/lib/bluetooth/[bth port MAC addresses]
您可以在此处找到已配对的每个设备的文件夹。文件夹名称是蓝牙设备的 MAC 地址,包含一个文件info. 在这些文件中,您将看到需要替换为 Windows 的链接密钥,如下所示:
[LinkKey]
Key=B99999999FFFFFFFFF999999999FFFFF
Run Code Online (Sandbox Code Playgroud)
Ubuntu、Mint、Arch:
sudo systemctl restart Bluetooth
Run Code Online (Sandbox Code Playgroud)
或者,将您的机器重新启动到 Linux。
小智 6
[linkKey]首先,许多答案建议替换文件部分中的密钥/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/info。这一段现在好像叫[LongTermKey]。而且,[LocalSignatureKey]现在看来是[IdentityResolvingKey]。有些答案只提到更改 key in [linkKey],但您还需要Enc和条目Ediv以及Randkey for [IdentityResolvingKey]。
其次,设备的mac地址可能不是恒定的。就我的 Logitech G604 而言,每次配对时它都会增加 1。我在这里更新了这些脚本来解决这个问题。
info文件attributes/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/.PsExec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
Run Code Online (Sandbox Code Playgroud)
C:\BTKeys.reg到 USB 闪存盘(C:如果可以从 Linux 操作系统访问该文件,则将其保留在驱动器上)。BTKeys.reg到您的 Linux 文件系统。clean_reg_file.py --file_path BTKeys.reg --output clean.reg以清理文件(将编码转换为 UTF8 并去除引号)。bluetooth_fix.py --reg_path clean.reg。sudo,导航至/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/。BTKeys.reg。info将和attributes从旧的 mac 地址目录复制到新的目录。/var/lib/bluetooth/<ADAPTOR_MAC>/<NEW_DEVICE_MAC>/info根据步骤 8 的输出打开并修改值。sudo systemctl restart bluetooth。| 归档时间: |
|
| 查看次数: |
87832 次 |
| 最近记录: |