[限时永久免费] 做了一个软件,让 Windows 也能像 Mac 一样,通过 Apple Watch / iPhone 靠近解锁 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Curtion
V2EX    分享创造

[限时永久免费] 做了一个软件,让 Windows 也能像 Mac 一样,通过 Apple Watch / iPhone 靠近解锁

  •  1
     
  •   Curtion
    Curtion 8 小时 36 分钟前 1967 次点击

    Windows自带的动态锁只能锁定, 无法解锁, 小米之前出过一个手环支持解锁,现在新系统也不能用了。

    之前在macOS上用的是bleunlock, 换Windows后没有找到类似的软件就自己做了一个。

    不需要在手机上安装软件,也无需保持蓝牙连接状态,判断低功耗蓝牙信号强度来解锁和锁定。

    软件下载地址: https://zu.3gxk.net/

    关于其它设备

    其实从原理是来说支持所有低功耗蓝牙设备, 只是我没有对 Apple Watch / iPhone 之外的其它设备进行测试, 其实如果低功耗蓝牙设备满足以下要求应该都可以用。

    1. 支持低功耗蓝牙
    2. 设备定时广播消息(苹果设备会自动广播, 部分安卓设备需要安装第三方软件来实现)
    3. 如果设备用了隐私地址, 那么还需要想办法获得 IRK 密钥

    条件还是比较多的,所以用应该是iPhone最方便的

    第 1 条附言    3 小时 54 分钟前
    感谢大家的反馈, 软件内引导和文档都做得一般, 所以这里补充一下 iPhone 的配置流程, 反馈的问题都会在后续进行改进和文档补充。

    iPhone 用户只能使用软件中的手动配置,下面是整个流程:

    首先在软件设置中配置 Windows 账号和密码, 账号密码会加密存储在本地。这里的密码不能是 PIN 码,需要账号的密码, 如果登录的微软账号, 那么账号是邮箱,否则就是本地账号。

    可以手动锁屏,选择新的 Unlock 账号,输入账号密码进行测试, 如果可以成功解锁说明配置正确。

    接着:

    1. 在 Windows 设置中将电脑和手机进行配对
    2. 配对成功后, 在软件中: 设备选择->手动配置->自动获取 IRK 密钥->下拉选择设备
    3. 下拉选项中的 MAC 地址要和手机中通用->关于本机->蓝牙 保持一致
    4. 保存配置

    手机关机或者远离进行测试。

    测试没问题后可以取消手机与电脑的配对,无需保持连接状态。
    75 条回复    2025-11-12 20:52:38 +08:00
    Tink
        1
    Tink  
    PRO
       7 小时 48 分钟前
    牛!
    Eins
        2
    Eins  
       7 小时 27 分钟前
    请教,正在使用过程中直接锁频了,后续不想用这个如何把登录界面的另一个 unlock 账号给删除了
    Curtion
        3
    Curtion  
    OP
       7 小时 21 分钟前
    @Eins 直接锁屏了,可以看一下日志中的锁屏原因, 可以尝试修改设置来改善。 登录界面中的账号在卸载软件后就会被删除
    Eins
        4
    Eins  
       7 小时 20 分钟前
    @Curtion #3 解决了,谢谢
    mooyo
        5
    mooyo  
       7 小时 7 分钟前
    这个原理是感知到蓝牙后软件替你输 pin ?
    Curtion
        6
    Curtion  
    OP
       7 小时 1 分钟前   1
    lixiaobai913
        7
    lixiaobai913  
       6 小时 41 分钟前
    有点厉害,为啥可以跳过火绒的联网控制发送验证码登录账号,火绒默认禁止新程序联网的
    TroyChen
        8
    TroyChen  
       6 小时 27 分钟前
    有点意思,试试看
    oppressed6370
        9
    oppressed6370  
       6 小时 19 分钟前
    牛啊
    Curtion
        10
    Curtion  
    OP
       6 小时 18 分钟前
    @lixiaobai913 用 tauri 实现的,联网的进程应该是 WebView2, 估计是火绒的规则没有限制系统 WebView2
    lixiaobai913
        11
    lixiaobai913  
       6 小时 15 分钟前
    @Curtion #10 WebView2 这个放行了的,还有个问题,就是自动发现的设备太多了,我这附近有一百多个蓝牙设备,看的眼花,要是增加一个搜索 mac 地址的就更方便了
    russ44
        12
    russ44  
       6 小时 10 分钟前
    有点意思
    Curtion
        13
    Curtion  
    OP
       6 小时 9 分钟前   1
    @lixiaobai913 #11 好,后续加个搜素。不过可能软件内引导没有做好,iPhone 应该使用手动配置, 如果用自动配置只能生效 10 多分钟就会失效(和隐私地址有关系)。
    doudoudei
        14
    doudoudei  
       6 小时 4 分钟前
    试试看。。。。。。。
    yangzzzzzz
        15
    yangzzzzzz  
       6 小时 0 分钟前
    在 5 个人的办公室 搜到了 43 个设备,8 个 iPhone ,1 个 ipad ,没显示 watch 设备的名字
    Curtion
        16
    Curtion  
    OP
       5 小时 52 分钟前
    @yangzzzzzz iPhone/Apple Watch 得用手动配置,晚点我更新一下软件内引导
    dcdlove
        17
    dcdlove  
       5 小时 39 分钟前
    配对折腾太麻烦了,
    NUT00
        18
    NUT00  
       5 小时 38 分钟前   1
    希望可以提供选项,自动锁屏或者自动解锁,有时候上班摸鱼屏幕黑了也不大好,仅仅想用自动解锁功能,然后开机自启发现勾了之后没反应,启动项貌似是已经添加了
    adg325401
        19
    adg325401  
       5 小时 37 分钟前
    手动配置和自动配置都试过了,然后软件设置里也把账号密码信息配置上了。1 、远离好像没有触发锁屏。2 、然后锁屏的时候靠近也没有触发解锁的操作。是什么问题导致的。日志里也没什么信息。
    zlkent
        20
    zlkent  
    PRO
       5 小时 26 分钟前
    好东西,注册账号了,软件下载了,结果软件里面发送验证码提示发送失败?
    qwanght
        21
    qwanght  
       5 小时 21 分钟前
    @adg325401 我是手机远离电脑后触发了锁屏( windows 自带的就可以锁屏),但是回来后不会自动解锁,屏幕上多了一个这个软件开头的账号。需要填入账号和密码。
    qwanght
        22
    qwanght  
       5 小时 19 分钟前
    软件设置里的账号和密码是干什么用的?我是微软账号登陆的系统。要把账号填到这里?
    Curtion
        23
    Curtion  
    OP
       5 小时 19 分钟前
    开机自启勾选后要保存才行,这个我优化一下。 像你说的自动解锁容易冲突吧,比如手动锁定电脑很容易马上就检测到信号然后自动解锁了。
    byby
        24
    byby  
       5 小时 18 分钟前
    手动获取出来的密码是一个 xml,对吗? 我解出来是 0000
    Curtion
        25
    Curtion  
    OP
       5 小时 18 分钟前
    @NUT00 开机自启勾选后要保存才行,这个我优化一下。 像你说的自动解锁容易冲突吧,比如手动锁定电脑很容易马上就检测到信号然后自动解锁了。
    hahahabro
        26
    hahahabro  
       5 小时 17 分钟前
    win 的设备太杂了,蓝牙模块层次不齐,估计体验不会有 mac 好。
    另外我没配对成功,找不到我的 iphone 。看设置需要输入账号和密码,然后,这个会不会有点风险
    另外好奇这个 UI 用的什么框架,挺简洁的
    Curtion
        27
    Curtion  
    OP
       5 小时 16 分钟前
    @zlkent 电脑是不是时间不对, 或者禁止软件联网了?
    Curtion
        28
    Curtion  
    OP
       5 小时 11 分钟前   1
    @hahahabro 先使用 Windows 自带的配对功能配对手机,然后软件中选择手动配置, 再使用自动获取 IRK 密钥就行了。 账号密码会加密存储到本地, 风险比较小,不会上传。 如果后续反馈担心隐私风险的人多的话可以考虑去掉账号登录功能,使用激活码激活,允许本地离线运行。 技术栈是 tauri+shadcn/ui
    Curtion
        29
    Curtion  
    OP
       5 小时 10 分钟前
    @qwanght #22 是的,需要填本地或者微软账号,解锁电脑用的, 这个账号会加密存在本地,不会上传。
    Curtion
        30
    Curtion  
    OP
       5 小时 1 分钟前
    @byby macOS 钥匙串访问中复制出来的是一个 xml, 解出来是 0000 这种是没有选择正确 xml, 账户要选择 Public 开头的那个
    Junichi
        31
    Junichi  
       4 小时 58 分钟前
    我是微软账号登录的,然后设置了 pin ,软件里也输入了登录的账号和 pin 密码,但解锁没办法解锁,看到登录界面上有一个 Unlock 的图标用户,请问是哪儿设置错了?
    Curtion
        32
    Curtion  
    OP
       4 小时 55 分钟前
    @adg325401 如果是苹果设备只能使用自动配置。可以试着勾选启用设备匹配日志设置, 如果勾选后依然没有日志,那么大概率是 IRK 不对。建议使用 Windows 自带蓝牙的设置配对手机,然后再选择自带获取 IRK 密钥。
    byby
        33
    byby  
       4 小时 52 分钟前
    @Curtion #30 我是看的有 public 开头的,奇怪
    Curtion
        34
    Curtion  
    OP
       4 小时 52 分钟前
    @Junichi 软件中设置的密码不是 pin 密码,而是账户密码,后续我加一个说明和自动检测机制。
    Curtion
        35
    Curtion  
    OP
       4 小时 49 分钟前
    @byby #33 位置看下是不是 BluetoothLESync ,我刚刚试了下, 这个方案还是可以正确解析出 Apple Watch 的密钥的。
    jpyl0423
        36
    jpyl0423  
       4 小时 45 分钟前
    开机自启的配置没用,勾选后保存,切换到其他菜单,再切回“软件设置”,还是没有勾选的状态
    FarAhead
        37
    FarAhead  
       4 小时 44 分钟前
    安装软件之后怎么多了一个用户,强迫症无法接受啊,而且用的 pin 码貌似不行
    byby
        38
    byby  
       4 小时 41 分钟前
    @Curtion #35 位置是 BluetoothLE
    Curtion
        39
    Curtion  
    OP
       4 小时 38 分钟前
    @FarAhead 没办法,这个方案必须多一个用户出来,最多后续可以做到允许自定义图标/名称。 密码不能用 pin 码,得用账户密码才行
    duhai973
        40
    duhai973  
       4 小时 37 分钟前
    既不锁定,也不解锁,也无其他特殊日志。
    lixiaobai913
        41
    lixiaobai913  
       4 小时 36 分钟前
    @Curtion #13 太棒了,我的朋友
    raycake
        42
    raycake  
       4 小时 36 分钟前
    安卓 可以么
    Curtion
        43
    Curtion  
    OP
       4 小时 33 分钟前
    @jpyl0423 有可能是安全软件拦截了, 因为软件需要管理员启动, 所以使用的计划任务方案, 可能会被拦截,我后续新增一些日志吧,方便判断。
    Curtion
        44
    Curtion  
    OP
       4 小时 30 分钟前
    Junichi
        45
    Junichi  
       4 小时 26 分钟前
    @Curtion #34 能自动锁屏,但无法自动解锁,确定是输入 windows 的邮箱和密码

    软件日志显示

    [2025-11-12][16:30:18][TRACE][notify::windows] Event: path = `C:\Program Files\ZuUnlock\bluetooth_keys_get_irk_key.json`, action = 2
    [2025-11-12][16:30:18][INFO][app_lib::command::system_task] [计划任务] 已删除临时文件
    [2025-11-12][16:30:18][INFO][app_lib::command::system_task] [计划任务] 删除 SYSTEM 权限计划任务
    [2025-11-12][16:30:18][INFO][app_lib::command::system_task] [计划任务] SYSTEM 权限计划任务删除成功
    [2025-11-12][16:30:18][INFO][app_lib::command::system_task] [计划任务] 一次性 SYSTEM 任务流程完成
    [2025-11-12][16:36:02][INFO][app_lib] [配置] 重新加载配置成功
    [2025-11-12][16:36:55][INFO][app_lib] [Windows] 收到锁屏事件
    [2025-11-12][16:37:33][INFO][app_lib] [Windows] 收到解锁事件
    Curtion
        46
    Curtion  
    OP
       4 小时 26 分钟前
    @byby #38 那应该不对,看看选择的 xml ,Public 后面的 MAC 地址和设备 MAC 地址能不能对上。
    Curtion
        47
    Curtion  
    OP
       4 小时 24 分钟前
    @raycake 可以试试看, 安卓不同品牌差异太大了,我也没有测试过唉。
    jpyl0423
        48
    jpyl0423  
       4 小时 21 分钟前
    @Curtion #39 电脑没有装安全软件,加日志后我再看下,感谢
    Quik
        49
    Quik  
       4 小时 14 分钟前
    真不错,不过家里的 Windows 设备不太需要,工位是 Mac ,先注册一个支持一下。
    littlepanic72
        50
    littlepanic72  
       4 小时 14 分钟前
    回头关注下
    Curtion
        51
    Curtion  
    OP
       4 小时 13 分钟前
    @Junichi #45 这个日志看起来是手动操作的锁定和解锁,如果是自动锁定,会打印锁屏原因。
    4X4
        52
    4X4  
       4 小时 11 分钟前
    @duhai973 一样,不知道配置有什么问题。
    OnlyShimmer
        53
    OnlyShimmer  
       4 小时 11 分钟前
    考虑下小米手环,华为手环之类
    Satoshl
        54
    Satoshl  
       3 小时 43 分钟前
    下载完了想起来公司电脑没有蓝牙呢 哈哈哈哈
    HenryHe613
        55
    HenryHe613  
       3 小时 26 分钟前
    谢谢,已经注册支持!
    KaneW95
        56
    KaneW95  
       3 小时 18 分钟前
    windows 电脑扫描不到 iPhone 的蓝牙
    KaneW95
        57
    KaneW95  
       3 小时 16 分钟前
    @KaneW95 用的 iPhone 连 windows 的蓝牙
    Curtion
        58
    Curtion  
    OP
       3 小时 11 分钟前
    @KaneW95 #57 都可以,只要配对连上就可以继续后续配置
    erde
        59
    erde  
       3 小时 2 分钟前
    iphone 和电脑配对上了,软件里还是显示未找到已配对设备,反复好几次都失败。
    Curtion
        60
    Curtion  
    OP
       2 小时 54 分钟前
    @erde 试试手动获取可以吗 https://zu.3gxk.net/docs/irk/iphone 如果手动可以获取到,那应该是 bug
    erde
        61
    erde  
       2 小时 52 分钟前
    @Curtion #60 手动用注册表弄了,现在日志收到了解锁事件,但是没反应,不会自己解锁,unclock 自己输入本地账户和密码能进入
    erde
        62
    erde  
       2 小时 44 分钟前
    配置完全没问题,用的微软账号和密码,密码刚重置完,属于完全不可用状态。
    [2025-11-12][18:21:49][INFO][app_lib] [蓝牙] 开始监听蓝牙设备信息变化
    [2025-11-12][18:21:58][DEBUG][tauri_plugin_updater::updater] checking for updates https://zu.3gxk.net/api/upgrade/windows/x86_64/1.5.0
    [2025-11-12][18:21:58][DEBUG][reqwest::connect] starting new connection: https://zu.3gxk.net/
    [2025-11-12][18:21:58][DEBUG][reqwest::connect] proxy( http://127.0.0.1:7890) intercepts 'https://zu.3gxk.net/'
    [2025-11-12][18:21:58][TRACE][reqwest::connect] tunneling HTTPS over proxy
    [2025-11-12][18:21:58][DEBUG][tauri_plugin_updater::updater] update endpoint returned 204 No Content
    [2025-11-12][18:22:04][INFO][app_lib] [Windows] 收到锁屏事件
    [2025-11-12][18:22:16][INFO][app_lib] [Windows] 收到解锁事件
    [2025-11-12][18:22:44][DEBUG][tauri_plugin_updater::updater] checking for updates https://zu.3gxk.net/api/upgrade/windows/x86_64/1.5.0
    [2025-11-12][18:22:44][DEBUG][reqwest::connect] starting new connection: https://zu.3gxk.net/
    [2025-11-12][18:22:44][DEBUG][reqwest::connect] proxy( http://127.0.0.1:7890) intercepts 'https://zu.3gxk.net/'
    [2025-11-12][18:22:44][TRACE][reqwest::connect] tunneling HTTPS over proxy
    [2025-11-12][18:22:44][DEBUG][tauri_plugin_updater::updater] update endpoint returned 204 No Content
    Alastar
        63
    Alastar  
       2 小时 39 分钟前
    [ERROR][app_lib] [操作] 信号强度达到解锁条件, 但是解锁失败, 错误: "命名管道未就绪, WIN32_ERROR(2)"
    ------------以上是报错。


    好像时间久了是休眠还是什么原因,会因为[INFO][app_lib::utils] [操作] 锁定成功, 当前锁定方案: NoSignalTimeout 导致锁屏,但亮一下屏就恢复解锁了
    Lamlam147
        64
    Lamlam147  
       2 小时 21 分钟前
    大哥,不会上传电脑账号密码,拿我当肉鸡吧,隐私有保证吗
    Curtion
        65
    Curtion  
    OP
       2 小时 5 分钟前
    @Lamlam147 不会上传,担心的话可以登录账号后,通过安全软件限制联网也可以,只不过这样就收不到更新了。
    Curtion
        66
    Curtion  
    OP
       2 小时 3 分钟前
    @Alastar 电脑不能休眠,休眠后就解不了锁了,目前这还没有解决方案, 只能系统中设置锁屏关闭显示器。
    rayyume
        67
    rayyume  
       1 小时 55 分钟前
    iPhone 下,选择的设备明显信号低于或高于阈值了,日志里并没有触发锁屏或者解锁,这是为啥呀
    Curtion
        68
    Curtion  
    OP
       1 小时 51 分钟前
    @erde #62
    [2025-11-12][18:22:04][INFO][app_lib] [Windows] 收到锁屏事件
    [2025-11-12][18:22:16][INFO][app_lib] [Windows] 收到解锁事件

    上面这两个时间是你手动操作锁屏和解锁吧? 如果是的话可以用这个判断下 IRK 填写是否正确 https://zu.3gxk.net/docs/irk/faq 也试试可以换个电脑获取 IRK 密钥,获取到的密钥可以保存下来,在其它电脑中直接配置也行。 马上会出一个检测模式,方便排查问题。
    Curtion
        69
    Curtion  
    OP
       1 小时 49 分钟前
    @rayyume 看一下追加内容,iPhone 配置用手动配置模式,自动扫描模式不能用在 iPhone 上面
    adg325401
        70
    adg325401  
       1 小时 40 分钟前
    手动配置试过了,然后发现一个奇怪的问题,本地的账号密码我用原来账号能登入,unlock 那个账号下就登不进去。账号密码再三确认没问题。
    Curtion
        71
    Curtion  
    OP
       1 小时 27 分钟前
    @adg325401 #70 那估计是用户名不对,可以试试 $env:USERNAME 这个命令获取到的用户名试试
    adg325401
        72
    adg325401  
       37 分钟前
    @Curtion #71 我是新建了账号,$env:USERNAME 确认过也是这个用户名。
    andykuen959595
        73
    andykuen959595  
       28 分钟前
    开机自启 有点问题 保存了 但是再看 还是没选中
    Curtion
        74
    Curtion  
    OP
       18 分钟前
    @adg325401 #72 新增账号设置的问题,其实没必要新建账号,用你原来的就行,锁屏界面左下角显示的 Unlock 不是用户名,只是一个标识,真正的登录用户名在输入框中
    alading11
        75
    alading11  
       14 分钟前
    华为手表可以用吗,感觉还是有需求的,虽然输个密码不费事,但总有不想把手放键盘的时候
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3008 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 200ms UTC 13:07 PVG 21:07 LAX 05:07 JFK 08:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86