文档验证一次发布
验证一次发布
五项检查。一记警报。
对捆绑包进行哈希、检查三个签名、与设备镜像比对。若有任何缺失,请勿刷写。停下并询问。
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.sh02
检查三个签名
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: yes05
攻击者需要什么
要让一个恶意镜像通过上述每一项检查,攻击者需要攻陷三个独立的签名角色、替换公共清单、替换设备端验证器,并逆转设备端主权状态显示。此协议的要点在于让这四件事同时变得不可行。
可复现构建很重要
若你想验证捆绑包本身 — 而不仅仅是它的签名 — 请遵循 构建镜像 并自行产出捆绑包。若你的构建哈希与我们的匹配,我们交付的就是相同的源代码。若不匹配,那就是警报。