feat: 增加认证更新配置与自动检查 (#94)
This commit is contained in:
@@ -145,8 +145,9 @@ client/
|
||||
- Repository 封装 SQLite,界面和自动化代码不得直接拼接业务 SQL。
|
||||
- PDD Adapter 封装设备连接、页面识别、采集和采购。
|
||||
- ArtifactStore 保存失败截图、无障碍 XML 和结构化诊断文件。
|
||||
- `UpdateService` 只负责 HTTPS 清单、下载校验和安全暂存;正在运行的主程序不替换
|
||||
自身,目录替换与回退只由下一次启动的 `Launcher.exe` 执行。
|
||||
- `UpdateService` 负责认证清单、下载校验和安全暂存;URL/账号由 Repository 保存,
|
||||
密码只从 Windows 凭据管理器短暂读入内存。正在运行的主程序不替换自身,目录
|
||||
替换与回退只由下一次启动的 `Launcher.exe` 执行。
|
||||
|
||||
## 5. 线程模型
|
||||
|
||||
@@ -165,7 +166,7 @@ Qt 主线程
|
||||
└── Outbox 重试,不重复执行 PDD 操作
|
||||
|
||||
更新工作线程
|
||||
├── 检查 HTTPS 清单
|
||||
├── 读取系统凭据并检查认证清单
|
||||
└── 下载、SHA256 校验和安全解压到 data/update/
|
||||
```
|
||||
|
||||
@@ -293,14 +294,15 @@ def _on_finished(self, remote_task_id: str, result) -> None:
|
||||
### 5.3 在线更新启动顺序
|
||||
|
||||
```text
|
||||
主程序:HTTPS 清单 → 用户确认 → 下载并校验 → data/update/app.new + pending.json
|
||||
主程序:系统凭据 → 认证清单 → 用户确认 → 下载并校验 → app.new + pending.json
|
||||
Launcher:确认主程序未运行 → app 改名 app.old → app.new 改名 app → 启动主程序
|
||||
主程序:窗口成功创建 → 写 healthy.json
|
||||
Launcher:健康标记正确则完成;提前退出则恢复 app.old
|
||||
```
|
||||
|
||||
更新 ZIP 只允许 `app/` 内容,拒绝绝对路径、`..`、反斜杠路径和符号链接。Launcher
|
||||
不联网、不处理凭据,也不自更新。
|
||||
不联网、不处理凭据,也不自更新。启动自动检查只在 URL、账号和系统密码都已保存时
|
||||
执行,网络失败只更新设置页状态,不阻止主窗口使用。
|
||||
|
||||
## 6. 任务引擎状态
|
||||
|
||||
|
||||
Reference in New Issue
Block a user