SolverNA/bt-lock-guard
GitHub: SolverNA/bt-lock-guard
通过蓝牙信号强度监测实现 KDE 桌面自动锁屏,防止设备无人值守时的物理访问攻击。
Stars: 0 | Forks: 0
# bt-lock-guard
当您的蓝牙设备(手机/手表)离开范围时锁定您的 KDE 屏幕。
显示带有**系统托盘图标**、实时信号图、切换开关和阈值滑块的托盘图标。
```
Phone moves away → RSSI drops below threshold
↓
bt-lock-daemon detects N consecutive misses
↓
Screen locks (qdbus / loginctl)
↓
Phone returns → unlock → grace period → monitoring resumes
```
## 功能
- 系统托盘图标(位于 KDE 面板的 Wi-Fi/时钟附近)
- 点击 → 弹出窗口包含:
- **切换开关** — 立即启用/禁用守护
- **阈值滑块** — 设置锁定距离(-100 到 -30 dBm)
- **实时 RSSI 图表** — 带有 dBm 值的 60 秒历史记录
- 每次会话配置 — 更改立即生效
- 解锁后的宽限期(允许蓝牙在重新激活前重新连接)
- 适用于任何蓝牙设备:手机、手表、标签
## 安装
### 一键安装 (Debian / Kali / Ubuntu)
```
curl -fsSL https://raw.githubusercontent.com/SolVerNA/bt-lock-guard/master/install.sh | sudo bash
```
安装程序在设置期间会要求输入目标蓝牙 MAC 地址。
### 从源码安装
```
git clone https://github.com/SolVerNA/bt-lock-guard
cd bt-lock-guard
sudo make install MAC=AA:BB:CC:DD:EE:FF
```
`make install` 现在会自动安装所需的 Debian 软件包(`bluez`、`python3-pyqt5`、`python3-dbus`)。
### 托盘窗口中的设备选择
目前托盘弹出窗口中**没有设备选择器**。
弹出窗口显示状态和控制(启用/禁用 + 阈值),而设备绑定在安装/设置期间通过 MAC 进行配置。
## 系统要求
- `bluez` (`bluetoothctl`、`l2ping`、`hcitool`)
- `python3-pyqt5`
- `python3-dbus`
- systemd + KDE Plasma (X11)
## 阈值指南
| dBm | 距离(大约) | 使用场景 |
|-----|-------------------|----------|
| -40 | ~1m(同一房间) | 非常严格 — 仅限桌面 |
| -60 | ~3–5m | 同一房间 |
| -70 | ~5–10m | 离开房间 |
| -80 | ~10–15m | 离开公寓 |
| -90 | ~20m+ | 离开建筑 |
## 日志
```
# Daemon
journalctl --user -u bt-lock-daemon@AA:BB:CC:DD:EE:FF -f
# 托盘
journalctl --user -u bt-lock-tray -f
```
## 卸载
```
git clone https://github.com/SolVerNA/bt-lock-guard
cd bt-lock-guard
sudo make uninstall
```
配置文件保留在 `~/.config/bt-lock-guard/config.json`。
## 许可证
MIT — SolVerNA
标签:KDE, KDE Plasma, Linux桌面安全, PyQt5, Python, Systemd, 个人安全, 信号强度, 屏幕保护, 无后门, 智能手表, 物理安全, 物理访问控制, 系统托盘, 蓝牙, 蓝牙信号, 蓝牙工具, 蓝牙锁定, 设备防丢, 距离检测, 逆向工具