Commit Graph
2 Commits
Author SHA1 Message Date
AskaEth 0d1b2d4c19 fix(fw): M51 r2 — 重编脚本开箱可用、自证门禁不再假绿、归因与 desc 纠正
r2 评审 p2-6items 六条全部处理;**产物字节未变**(5 件 md5 与 31d4c22 完全一致)。

P2-1/P2-4 归因纠正(31d4c22 提交说明里那两行是错的,以本条为准):
  - bootmenu 的 +1728 **不是**工具链代差,是 M23 源码(m2.29→m2.30)。证据:旧件
    `readelf -p .comment` 已是 clang 22.1.8(与新件同代);旧件版本串 `0.1.0-m2.29-takeover`,
    而钉值 commit 884d4c4 的源码已是 m2.30;用 6364498(m2.29 树)+ 今天的工具链重编得
    157108/0507739d,与旧钉值件逐字节相同。
  - launcherd 的 −512 也不是编译器:新旧 .comment 集合一致(那道 21.1.8 来自 meow_ui.a 里的
    meow_font.o),真实原因是 SDK 静态库从 86800633 换成 cc0ed49b——用 58cdb73 源码 +
    86800633 的 .a 重编得 894940/cea0a735,与旧钉值件逐字节相同。
  - 因此**只有 meow_audiod 真有工具链代差**(旧 clang/LLD 21.1.8 → 新 22.1.8)。

P2-2 主 checkout 定位:`git rev-parse --git-common-dir` 给的是主仓库 .git 的**绝对**路径,
  父目录才是主 checkout;旧版把绝对路径当相对路径拼到 $ROOT 下,`cd` 失败被 `set -e`
  直接终止 → 干净 worktree 里静默 exit 1。现为 `cd "$_gcd/.."` + 全部 `|| true`,
  找不到 meow_ui.a 时**先**打印诊断(缺什么、试过哪些路径、怎么覆盖)再退出。

P2-3 .tools 兜底层级:旧版把 $COMPAT_HOME/Project/R3ProII 指向 ROOT,脚本里的
  `$HOME/Project/R3ProII/.tools` 就落到 `<checkout>/.tools`(干净 worktree 不存在 → 127)。
  现在造一个真目录,只放 `.tools -> ~/.tools` 与 `patch_v2 -> $ROOT/patch_v2`;
  零手工准备即可开箱重编。README 措辞同步改准。

P2-5 门禁假绿:test_time32_abi.sh 的退出码现计入 FAIL,脚本缺失也记 FAIL。
  失败桩自证:`PASS=33 FAIL=1`、exit 1(原为 PASS=33 FAIL=0 / exit 0)。

P2-6 desc:meow_audio 的 `volume` → 真实子命令 `status / tone / route / vol / output / monitor`
  (并避开 `|`,否则破坏清单 4 字段格式);bootmenu 的读取键改为 display.brightness
  (display.brightness_min 只是下限 clamp);netmgrd 去掉「以太网连接」的夸大说法。
2026-11-11 21:02:09 +08:00
AskaEth 31d4c22806 fix(fw): M51 刷机前批次 — 5 组二进制从最新 main 重编 + 钉值回写 + 语义指纹自证
本轮终结「二进制与源码两条轨道各走各的」:M23/M43/M47/M49/M50 只交源码,产物统一由本单
从 main 5a06a8c 一次重编。重编后 md5 全变(旧钉值来自另一代工具链/另一份源码),语义由
scripts/build/verify_fingerprints.sh 逐条自证。

- meow_bootmenu     157108 → 158836  8bce6558  (源码与 884d4c4 一致,变化全部来自工具链代差)
- meow_netmgrd      212740 → 222068  e62e7512  (M49 蓝牙控制面 + WiFi 连接修复,+9328 全为源码)
- meow_audiod       153484 →  68604  9f58b219  (musl 静态 → glibc-2.22 动态,链 libasound.so.2;M50)
- meow_audio         88888 →  88888  3909c8d2  (与钉值逐字节一致,重编即复现)
- meow_launcherd    894940 → 901020  e21450ff  (M47 蓝牙/WiFi 三态开关 +6592)

fw_content.conf:上述 6 行(netmgrd 双路径)md5 回写;desc 改为中性描述(文件是什么/什么形态),
不再写未进产物的功能版本号(M48 查出 bootmenu/netmgrd/audiod 三处 desc 撑谎)。
30/30 行 md5 与磁盘一致、全部 4 字段。

新增 scripts/build/rebuild_binaries.sh:干净 checkout / worktree 里的重编驱动(兼容 HOME +
.tools/meow_ui.a 兜底,不改各组件 build_*.sh 的本机硬编码路径)。
新增 scripts/build/verify_fingerprints.sh:字符串/动态段/4263 反汇编判据逐条断言。
2026-11-11 20:29:21 +08:00