文档验证一次发布

验证一次发布

五项检查。一记警报。

对捆绑包进行哈希、检查三个签名、与设备镜像比对。若有任何缺失,请勿刷写。停下并询问。

01

下载清单和捆绑包

每次发布都随二进制捆绑包附带一份签名的 JSON 清单。两者皆来自同一公共源。镜像站可托管捆绑包,但绝不托管私有签名材料。

shellcurl -L -O https://git.lydos.ailydian.com/lydos/releases/2026.06.r1/lydos_husky-target_files.zip
curl -L -O https://git.lydos.ailydian.com/lydos/releases/2026.06.r1/release.manifest.json
curl -L -O https://git.lydos.ailydian.com/lydos/releases/2026.06.r1/verify-bundle.sh
chmod +x verify-bundle.sh
02

检查三个签名

shell./verify-bundle.sh --manifest release.manifest.json --signatures
# expected output:
#   release:    valid (key id 3571a6c8)
#   security:   valid (key id 9c4d77a1)
#   ops:        valid (key id 5f1e08b3)
#   quorum:     3 / 3 OK
若任一签名失败
请勿继续。缺失或无效的签名意味着清单不可信。将失败报告给 security@lydos.ailydian.com,并附上清单。
03

对二进制捆绑包进行哈希

shell./verify-bundle.sh --bundle lydos_husky-target_files.zip --hash
# expected output:
#   build_sha256:           3571a6c85a15006d…
#   manifest_sha256:        3571a6c85a15006d…
#   match:                  yes
当它匹配时
捆绑包在离开构建管线到抵达你的机器之间未被修改。你可以放心刷写,确信它就是我们交付的同一镜像。
04

与设备镜像比对(刷写后)

刷写后,在设备上打开 Sovereign Status 并点按 Verify build hash。手机计算设备端镜像哈希并显示它。将它与清单哈希并排比对。

shell# from your workstation:
adb shell 'sovereign-status --print-hash'
# expected output:
#   on_device_sha256:       3571a6c85a15006d…
#   match_with_manifest:    yes
05

攻击者需要什么

要让一个恶意镜像通过上述每一项检查,攻击者需要攻陷三个独立的签名角色、替换公共清单、替换设备端验证器,并逆转设备端主权状态显示。此协议的要点在于让这四件事同时变得不可行。

可复现构建很重要
若你想验证捆绑包本身 — 而不仅仅是它的签名 — 请遵循 构建镜像 并自行产出捆绑包。若你的构建哈希与我们的匹配,我们交付的就是相同的源代码。若不匹配,那就是警报。