现象
来自用户日志 openless-2026-09-10T11-41-25.log:
- 听写失败:
[vault] android credential read failed: read Android credential envelope 之后,门禁报「请先在设置中填写火山引擎 ASR App Key」。当天稍早百炼 ASR 是正常的。
- 应用内更新失败:已发现
v1.3.18-Beta.7,安装时报 parse updater pubkey: Invalid encoding in minisign data,系统安装器从未打开。
根因
- Android 更新器用
PublicKey::from_base64 解析 tauri.conf.json 里那份 再 Base64 包装过的 minisign 公钥文件(约 114 字节文本)。该 API 只要 42 字节密钥行,因此验签在写 APK / 调 installApk 之前就失败。桌面 tauri-plugin-updater 是先解 Base64 再 PublicKey::decode。
- 凭据信封读取失败时只打外层
{e},并回落到空配置。非 Windows 默认 ASR 是 volcengine,于是把「Keystore/信封读不出来」伪装成「没填火山 Key」。
修复分支
彻底修复测试之前先不开 PR。代码在 fork:https://github.com/HKLHaoBin/openless/tree/fix/android-updater-minisign-and-vault-error
- 对齐桌面 Tauri 的 minisign 解析(pubkey + signature,
verify(..., true))
- 记录完整 anyhow 链
{e:#},去重日志;SystemCredentialStore 在 vault 不可读时返回 Persistence「无法读取已保存的凭据」,而不是空 Key / 未配置火山
验证
- 本地:
cargo test --lib updater_logic、android_startup_failure;node scripts/check-android-updater-pubkey.mjs
- 将在
HKLHaoBin/openless 对该分支 workflow_dispatch:CI、Android APK (debug)、Release Tauri、Release Linux egui
现象
来自用户日志
openless-2026-09-10T11-41-25.log:[vault] android credential read failed: read Android credential envelope之后,门禁报「请先在设置中填写火山引擎 ASR App Key」。当天稍早百炼 ASR 是正常的。v1.3.18-Beta.7,安装时报parse updater pubkey: Invalid encoding in minisign data,系统安装器从未打开。根因
PublicKey::from_base64解析tauri.conf.json里那份 再 Base64 包装过的 minisign 公钥文件(约 114 字节文本)。该 API 只要 42 字节密钥行,因此验签在写 APK / 调installApk之前就失败。桌面tauri-plugin-updater是先解 Base64 再PublicKey::decode。{e},并回落到空配置。非 Windows 默认 ASR 是volcengine,于是把「Keystore/信封读不出来」伪装成「没填火山 Key」。修复分支
彻底修复测试之前先不开 PR。代码在 fork:https://github.com/HKLHaoBin/openless/tree/fix/android-updater-minisign-and-vault-error
verify(..., true)){e:#},去重日志;SystemCredentialStore在 vault 不可读时返回 Persistence「无法读取已保存的凭据」,而不是空 Key / 未配置火山验证
cargo test --lib updater_logic、android_startup_failure;node scripts/check-android-updater-pubkey.mjsHKLHaoBin/openless对该分支workflow_dispatch:CI、Android APK (debug)、Release Tauri、Release Linux egui