Files
MemRelay/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/Checkpoint 2026-08-24 08-20-59 UTC [5d3eb69216].md
T

2.6 KiB
Raw Blame History

title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
title type permalink stable_id scope project_id memory_type status revision restored_from_commit created_at updated_at tags
Checkpoint 2026-08-24 08:20:59 UTC [5d3eb69216] checkpoint main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/checkpoint-2026-08-24-08-20-59-utc-5d3eb69216 8db18267-0c12-4446-bfe8-f2f755752c09 project ea207d36-693c-4349-b3c8-7c40c8c889f5 checkpoint active 1 6a6a895eaf 2026-09-23T15:11:37.281771+00:00 2026-09-23T15:11:37.281845+00:00
vm-test
build-verified
handoff

VM 端到端测试前复验(2026-08-24)

当前状态

  • 工作区 E:\code\WinUnLock,分支 main,HEAD 09662c8,Git 工作区干净,无远程。
  • 当前安装方式为 Rust 安装器 winunlock-admin.exe,不使用 PowerShell 安装脚本。
  • 工具链:rustc 1.94.1、cargo 1.94.1、stable-x86_64-pc-windows-msvc。

本次验证

  • cargo test --release --target x86_64-pc-windows-msvc 成功:14 个测试通过,0 失败(common 13、provider 1)。
  • cargo build --release --target x86_64-pc-windows-msvc 成功。
  • 四个产物存在:provider.dll 586752 B、client.exe 518656 B、setup.exe 647680 B、winunlock-admin.exe 279552 B。
  • winunlock-admin.exe --help 与 setup.exe --help 均退出码 0,中文输出正常。

VM 测试下一步

  1. Windows 10/11 x64 VM 内先确认账户的文本密码可以手动解锁,不能使用 PIN 代替密码;建议使用本地测试账户并准备第二个管理员账户。
  2. 安装 Credential Provider 前创建 VM 快照。
  3. 可在宿主机编译后只复制四个 release 产物到 VM;cred.bin 必须在 VM 内运行 setup 生成,不能跨机器复制。
  4. 在 VM 管理员终端运行 winunlock-admin.exe install --unlock-time HH:MM,再从管理员终端运行 %PROGRAMDATA%\WinUnLock\bin\setup.exe --account ".\用户名" 并交互输入密码。
  5. 将触发时间设为约 3 分钟后,执行 Win+L,观察自动解锁;成功/失败后检查 client.log 与 provider.log。
  6. 失败时按日志分层判断:无 provider 日志=DLL 未加载/未注册;client 退出码 10=管道未出现;provider 收到凭据但未提交=CredentialsChanged/GetCredentialCount 链路;提交后失败=账户格式、密码或认证包问题。
  7. 卸载从构建产物目录以管理员运行 winunlock-admin.exe uninstall;锁屏异常时恢复 VM 快照,或在安全模式/WinRE 删除两个 CLSID 注册项。

注意

安装器会把 %PROGRAMDATA%\WinUnLock ACL 收紧为仅 SYSTEM/Administrators,因此 setup 应在管理员终端运行。