chore: 导入旧记忆备份供恢复

This commit is contained in:
2026-09-23 22:38:40 +08:00
parent 5313fcee7a
commit 6a6a895eaf
638 changed files with 29816 additions and 1 deletions
@@ -0,0 +1,44 @@
---
title: Checkpoint 2026-08-24 08:20:59 UTC [5d3eb69216]
type: checkpoint
permalink: main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/checkpoint-2026-08-24-08-20-59-utc-5d3eb69216
stable_id: 8db18267-0c12-4446-bfe8-f2f755752c09
scope: project
memory_type: checkpoint
project_id: ea207d36-693c-4349-b3c8-7c40c8c889f5
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
status: active
revision: 1
request_id: winunlock-vm-preflight-20260824-160900
created_at: '2026-08-24T08:20:59.181779+00:00'
updated_at: '2026-08-24T08:20:59.181779+00:00'
tags:
- 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 应在管理员终端运行。