文档构建镜像

构建镜像

从源代码到一个可刷写的捆绑包。

一次终端会话。在现代工作站上需九十分钟。产出与我们发布相同的哈希 — 否则就是警报。

01

前置条件

一台运行 Ubuntu 22.04 LTS 或 24.04 LTS 的工作站,配备 64 GB 内存、400 GB 空闲磁盘、较新的 JDK 17、最新的 Android repo 工具以及 Git。任何现代 Linux 均可 — 这些是我们用来测试的版本。

为何需要这么多磁盘?
一次 AOSP 检出大约为 250 GB。构建产物再增加 80–100 GB。请将其保存在 SSD 上 — 机械硬盘在任何合理时间内都无法完成。
02

克隆公共清单

shellgit clone --depth 1 \
  https://git.lydos.ailydian.com/lydos/lydos-phone-manifest \
  -b husky-2026.06.r1
cd lydos-phone-manifest
repo init -u . -b husky-2026.06.r1
repo sync -j8 -c --no-clone-bundle --no-tags

repo sync 首次大约需要 30–60 分钟。后续同步会很快。

03

构建镜像

shell. build/envsetup.sh
lunch lydos_husky-user
m -j$(nproc) target-files-package

lunch 为目标设备搭建构建环境。 m target-files-package 产出将被刷写的捆绑包以及配套的可复现性回执。

长时间运行的步骤
首次构建视硬件而定需 60–120 分钟。后续构建为增量式,耗时短得多。
04

对照已发布的哈希进行验证

shell./verify-bundle.sh out/dist/lydos_husky-target_files-*.zip
# expects:
#   build_sha256 == published_release_sha256
#   manifest_signatures_valid == 3 / 3
匹配
当哈希匹配且三个签名验证通过时,你可以确信这台机器上的镜像与我们交付的镜像逐位完全相同。
不匹配
若任一检查失败,请勿刷写。提交一个议题,附上build.prop 文件的差异以及 verify-bundle.sh 的输出。不匹配是值得注意的 — 在假定它无害之前先调查它。
05

下一步该做什么

产出是一个可刷写的 target_files.zip。将它与公共发布清单配对,然后要么用 lyd-flasher 直接刷写,要么将其托管在你自己的镜像站上供组织使用。

继续阅读 验证一次发布 以从消费者一侧看到相同的流程,或 运行一个联邦节点 以参与跨设备免疫。