hanzn-zzx
2024-06-27 22:53 deepin
Reply Like 0 View the author
这个很需要,尤其对于我这类的双系统用户,虽然win系统很少用了,但偶尔还是需要的。
您好,我遇到一个问题在运行 synckeys.py
时报错,后续我手动更改LTK导致蓝牙链接windows正常,uos在链接成功和链接失败之间来回横跳
您好,我遇到一个问题在运行 synckeys.py
时报错,后续我手动更改LTK导致蓝牙链接windows正常,uos在链接成功和链接失败之间来回横跳
先把UOS的蓝牙配对删掉。然后再试试,遇到报错的时候把报错信息记录下来发来看看
写了一个自动脚本
PSTools\psexec -s -i regedit /e D:\synckeys\keydump.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
pause
#!/bin/bash
# 获取蓝牙适配器的 MAC 地址
adapter=$(sudo ls /var/lib/bluetooth/ | grep -E '^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$')
if [[ -z "$adapter" ]]; then
echo "未找到蓝牙适配器。请检查蓝牙是否已启用。"
exit 1
fi
echo "检测到蓝牙适配器: $adapter"
# 自动获取已配对设备的 MAC 地址
paired_devices=$(sudo ls /var/lib/bluetooth/$adapter/ | grep -E '^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$')
if [[ -z "$paired_devices" ]]; then
echo "未找到已配对设备。请确保蓝牙设备已在 Linux 系统中配对。"
exit 1
fi
echo "已配对的设备列表:"
index=1
for mac in $paired_devices; do
echo "$index. $mac"
index=$((index + 1))
done
# 提示用户选择设备
read -p "请选择 Linux 配对设备的编号(例如 1): " device_index
# 验证用户输入
if ! [[ "$device_index" =~ ^[0-9]+$ ]] || (( device_index < 1 || device_index > $(echo "$paired_devices" | wc -l) )); then
echo "无效的编号!请重新运行脚本并选择正确的设备编号。"
exit 1
fi
# 获取用户选择的 MAC 地址
linux_mac=$(echo "$paired_devices" | sed -n "${device_index}p")
echo "选择的 Linux 配对设备 MAC 地址: $linux_mac"
# 提示用户输入 Windows 配对设备的 MAC 地址
read -p "请输入 Windows 配对设备的 MAC 地址 (带冒号格式,例如: 12:34:56:78:9A:BC): " windows_mac
# 验证输入的 Windows MAC 地址格式
if ! [[ $windows_mac =~ ^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$ ]]; then
echo "Windows MAC 地址格式不正确!"
exit 1
fi
# 检查 Linux 配对目录是否存在
linux_dir="/var/lib/bluetooth/$adapter/$linux_mac"
if ! sudo test -d "$linux_dir"; then
echo "未找到 Linux 配对目录: $linux_dir"
exit 1
fi
# 目标目录:使用带冒号的 Windows MAC 地址
windows_dir="/var/lib/bluetooth/$adapter/$windows_mac"
# 检查目标目录是否已存在
if sudo test -d "$windows_dir"; then
read -p "目标目录已存在,是否覆盖? (y/n): " overwrite
if [[ "$overwrite" != "y" ]]; then
echo "操作取消。"
exit 0
fi
fi
# 拷贝配对信息
echo "正在将配对信息从 $linux_dir 拷贝到 $windows_dir ..."
sudo cp -r "$linux_dir" "$windows_dir"
# 检查是否成功
if [[ $? -eq 0 ]]; then
echo "配对信息已成功拷贝!"
else
echo "拷贝失败,请检查权限和路径。"
exit 1
fi
sudo ls "/var/lib/bluetooth/$adapter/"
sudo python3 ./synckeys-master/synckeys.py ./keydump.reg
sudo systemctl restart bluetooth
Popular Events
More
双系统蓝牙无缝连接
总有人说蓝牙重新配对很方便,方便个毛毛,一开即用才真方便。
本文来自https://github.com/ademlabs/synckeys
上一次发的双系统蓝牙无缝链接 的教程已经落后于时代了,有些设备无法连接了。所幸这一篇手动操作的教程是有用的。
先决条件
Linux需要:
synckeys.py
(从synckeys的github)Windows需要:
步骤
必须先在Linux上配对好蓝牙设备(方便后面修改已有的配对信息)
重启到Windows,再次 配对相同的设备。(以便于拿到生成的配对信息去修改Linux下的内容)
Windows里以管理员身份打开终端(或命令提示符),进入存放刚刚下载的PSExec的目录,运行以下命令以转储密钥
这里将密钥存放在了C盘根目录。如果你的Linux访问不了这个文件,你就想办法发到Linux上。
重启到Linux,修改之前的配对信息
实际上是拷贝了一份来修改。其中
是你的电脑的蓝牙适配器的MAC地址,一般只有一个,不需要自己改。
是之前配对的设备的MAC地址,不知道的话去设置里看。
是刚刚Windows生成的keydump.reg里的没有冒号且是小写表示的MAC地址,这个地址与
只有一位数字(MAC地址是十六进制数表示,A、B、C等也表示数字)不一样,很好找到。
如果是一样的,就不用做这一步了。
root权限运行
synckeys.py
, 注意下面修改成自己文件所在路径重启蓝牙服务