fix(build): M56 r1 评审三条 P2 + 一条观察(脚本权限/可复现口径注释/watchdog 参数去内联+入门禁/REPACK 显式失败)
- P2-1 repack_repro.sh 提交为 100755(scripts/build/ 下唯一非 755 的 .sh,而头注释就让人直接执行) - P2-2 注释与事实对齐:写明 squashfs/分片/ota_update.in 可复现,但 .upt 仍有 93 字节 Rock Ridge TF backup date 差异(genisoimage 无覆盖开关),验收口径仍是 体积+unpack 0 diff+进包 md5 - P2-3 watchdog 参数不再内联复制:build_watchdog.sh 认 ZIGCC(照 build_netmgrd.sh 口径), rebuild_binaries.sh 改成调它;meow_watchdog 加入 test_time32_abi.sh 的 BUILD_TARGETS(11 个)。 改后重编仍逐字节 25f769509a43d0f66287efd456c64281 / 100116,与内联那版一致 - 观察1:REPACK 显式指定但不存在 -> exit 1(此前会静默回退到不可复现的旧 repack.sh)
This commit is contained in:
1 parent
d34406ac22
commit
28fbc6094a
5 files changed
+36
-16
No files matched your search
Regular → Executable
+12
-4
@@ -1,11 +1,19 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# repack_repro.sh — .upt 打包(mksquashfs + 分片 md5 链 + ISO),**时间戳可复现**
|
||||
# repack_repro.sh — .upt 打包(mksquashfs + 分片 md5 链 + ISO),时间戳尽量可复现
|
||||
#
|
||||
# 与 hiby_os_crack/scripts/repack.sh 的产物布局逐字节等价(ota_update.in / ota_v0.ok /
|
||||
# ota_config.in / rootfs.squashfs.NNNN.<prev-md5> / ota_md5_rootfs.squashfs.<md5>),
|
||||
# 只是把「墙钟时间」从产物里拿掉,使同一输入**连续打包两次逐字节相同**:
|
||||
# 只把墙钟时间从「squashfs + 元数据」里拿掉。**可复现到什么程度(实测口径,别夸大)**:
|
||||
# ✅ bytes-reproducible:rootfs.squashfs、ota_md5_rootfs.squashfs.*、ota_update.in、
|
||||
# 分片文件名与内容、xImage 侧 —— 同一输入连续两次打包全部相同。
|
||||
# ❌ not bytes-reproducible:`.upt`(ISO)本身。genisoimage 会给 Rock Ridge `TF`
|
||||
# 记录写 **backup date**(TF flag=0x1a,第三个 7 字节字段),该字段取墙钟且**没有
|
||||
# 覆盖开关**(`-creation-date` 只定卷的创建/修改时间)。M56 实测两次打包 `cmp -l`
|
||||
# 恰好 93 字节不同,全在该字段(分钟字节),载荷 0 差异。
|
||||
# 因此 `.upt` 的验收口径仍是:**体积 + unpack 0 diff + 进包 md5**。
|
||||
#
|
||||
# 时间戳处理:
|
||||
# 1) squashfs:`-repro-time <epoch>`(= -mkfs-time + -inode-time;mksquashfs 4.7 起)。
|
||||
# 只加 -all-time 不够 —— 超级块的 mkfs_time 仍是墙钟(M60 实测)。本脚本按
|
||||
# `mksquashfs -help-all` 能力探测,依次尝试:
|
||||
@@ -13,8 +21,8 @@
|
||||
# -mkfs-time <t> -inode-time <t> (4.6)
|
||||
# -mkfs-time <t> -all-time <t> (老版本)
|
||||
# 都没有 → 告警并按旧口径(体积 + unpack 0 diff + 进包 md5)出货。
|
||||
# 2) ISO:genisoimage 的卷创建时间用 `-creation-date <YYYYMMDDhhmmsscc>` 固定,
|
||||
# 并把暂存目录里所有文件/目录的 mtime touch 到同一 epoch(ISO 目录记录取文件 mtime)。
|
||||
# 2) ISO:卷创建时间用 `-creation-date <秒数>` 固定,并把暂存目录里所有文件/目录的
|
||||
# mtime touch 到同一 epoch(ISO 目录记录取文件 mtime)。backup date 无解,见上。
|
||||
#
|
||||
# 用法:
|
||||
# repack_repro.sh -i <squashfs-root> -k <xImage> -o <out.upt>
|
||||
|
||||
Reference in new issue
Block a user