用过 Mac 的朋友应该知道,戴着 Apple Watch 回到电脑前,Mac 会自己解锁,这是 Apple 官方的 Auto Unlock。Windows 一直没有这个功能,每次回到工位都得再输一遍密码。
所以我做了 Watch Unlock Windows:戴着 Apple Watch 走开,电脑锁屏;走回来,电脑自动解锁。
项目地址:项目地址:

它是怎么判断你走开、又回来了的
靠的是手表蓝牙信号的强度(RSSI):
- 离开:锁屏以后,手表信号一旦低于「远离阈值」,就算你走开了;
- 返回:信号回到「靠近阈值」,就触发解锁。
我实测走远再回来,大约 0.17 秒解锁。
要注意的是,只有「先离开、再回来」才会解锁。锁屏后要是一直坐在电脑旁边,它不会自动解锁,你还是照常输密码。
那它怎么知道哪块是你的手表?Apple Watch 的蓝牙广播地址会随机轮换,按地址认不出来。绑定时,程序会经过一次管理员确认,读取 Windows 配对时保存的这块手表的 IRK(身份解析密钥)。有了 IRK,就能从不断变化的随机地址里认出你的手表。
解锁这一步交给 Windows 登录组件(Credential Provider):后台判断你回来了,就把保存的账户密码交给系统登录界面校验。
上手只要四步
先从 Releases 下载安装包,批准一次管理员确认,按向导装好,再从开始菜单打开 Watch Unlock。
第一步,配对。 在「附近扫描」里打开配对窗口,在手表的「设置 → 蓝牙」里选中这台电脑,再确认 Windows 弹出的配对请求。

第二步,绑定。 在「Windows 已配对设备」里点「绑定此设备」,批准一次管理员确认,让手表靠近电脑,最多等 30 秒。
第三步,填密码。 在「我的设备」里填上 Windows 账户密码。注意是账户密码,不是 PIN 码,因为登录时要把真实密码交给 Windows 校验。

第四步,试一下。 锁屏,走远,再走回来,电脑就解锁了。每次锁屏和解锁都会记在「解锁记录」里,可以拿来看它判断得准不准。

距离阈值在「我的设备」里调。RSSI 受遮挡影响很大,最好在自己工位上多走几次再定。
两种解锁方式
解锁方式可以按设备单独设置:
- 无感解锁(默认开启):一靠近就解锁。
- 关掉无感解锁:回来以后要动一下键盘或鼠标才解锁。手表一直在近处,它就一直等你操作;你要是又走远了,这次返回就不算数。
还有几个小功能:
- 开机自启:默认开启,每次登录 Windows 都会自动启动后台。不过重启后第一次登录还得手动输密码,那时后台还没跑起来。
- 解锁通知(可选):解锁后通过 Bark 往手机推一条提醒。通知不参与解锁判断。

密码存在哪,安不安全
要替你登录,密码就必须能还原,这一点绕不开。所以存储这块我做得比较保守:
- 账户密码、每块手表的 IRK 和 Bark 密钥,都用 Windows 自带的 DPAPI 按当前账户加密,存在
%LOCALAPPDATA%\WatchUnlockWindows\,这个目录只有你和 SYSTEM 能访问。 - 后台只把密码交给同一会话里的系统登录界面(SYSTEM 身份的
LogonUI),而且后台本身必须运行在只有管理员可写的Program Files目录里。 - IRK 不会出现在命令行、日志或界面里。
其他账户读不到这些文件;硬盘被拆走,没有你的账户密码也解不开。但如果已经有恶意程序以你的身份在运行,它就防不住了。
局限,先说清楚
它的安全性比不上 Apple 官方的 Auto Unlock,用之前最好心里有数:
- 它不知道手表是不是戴在你手上。 我实测过四种状态,手表的蓝牙广播内容完全一样。所以手表没戴,或者被别人拿着走近,同样可能触发解锁。
- 防不了广播重放和中继。 它只看手表身份(IRK)和信号强度(RSSI)。
- RSSI 不等于距离。 墙体、人体遮挡和手表朝向都会影响信号,偶尔会误判离开或返回。
- 关掉无感解锁,也确认不了是你本人在操作。 手表在近处时,别人动一下键鼠同样会解锁。
- 不支持远程桌面会话;安装包目前没有代码签名。
所以我建议在家里或比较可信的办公环境里用,别把它当成高强度的安全方案。
实测过的:Windows 11 Pro + Apple Watch 下一键绑定、走远返回解锁、关闭无感解锁时等待键鼠操作、原地锁屏不解锁。还没测过:同时绑定两块手表、休眠或蓝牙故障后的恢复、切换用户。你要是测了,欢迎反馈。
想自己改改
项目结构大致如下:
text
apps/desktop/ Tauri 界面
backend/crates/domain 距离策略(纯逻辑)
backend/crates/watchd 后台:蓝牙扫描、会话监测、秘密存储、通知
backend/crates/provider Windows 登录组件(Credential Provider)
scripts/ 构建、隐私检查、第三方许可清单
后端用 Rust,界面用 Tauri。想接入别的手表或手环,实现 backend/crates/watchd/src/adapters.rs 里的 DeviceAdapter 就行,距离策略、凭据存储和登录组件都能直接复用。
最后
源码和安装包都在 GitHub 上,感兴趣可以装上试试,觉得有用就点个 Star:
本项目基于 xiaoka520/watch-unlock-windows 修改。Apple Watch、Windows 等名称只用来说明兼容性,本项目与 Apple 无关。