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`, 而钉值 commit884d4c4的源码已是 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 去掉「以太网连接」的夸大说法。
This commit is contained in:
1 parent
31d4c22806
commit
0d1b2d4c19
4 files changed
+142
-55
No files matched your search
@@ -13,8 +13,8 @@
|
||||
| `build_fw_apps.sh` | **通用打包脚本**(配置驱动)。读清单 → 组树 → repack → 校验 → 出固件。**不要改它的逻辑**,除非打包流程本身要变。 |
|
||||
| `fw_content.conf` | **固件内容清单**(默认配置)。每行一条 `<src>|<dst>|<md5>|<desc>`,声明"哪个本地文件装到固件哪里"。**改固件内容只改这里。** |
|
||||
| `build_devkit.sh` | **TF 卡调试工具集**交叉编译脚本(zig → 静态 MIPS32r2):`vmstat/slabtop/free/ps/pmap/sysctl/lsof` → `fw_apps/devkit/`。与固件打包无关,独立跑。详见 `DEVKIT.md`。 |
|
||||
| `rebuild_binaries.sh` | **进固件的那批组件重编驱动**:`bash scripts/build/rebuild_binaries.sh [bootmenu netmgrd audiod audio launcherd]`。在干净 checkout / git worktree 里补齐各组件 `build_*.sh` 的本机布局默认路径(兼容 HOME + `.tools`/`meow_ui.a` 兜底),产物就地写回 `patch_v2/<组件>/`。 |
|
||||
| `verify_fingerprints.sh` | **产物语义指纹自证**:`bash scripts/build/verify_fingerprints.sh`。重编后 md5 必变,能证明「产物含哪些源码改动」的是字符串/动态段/4263 反汇编判据,本脚本逐条断言。 |
|
||||
| `rebuild_binaries.sh` | **进固件的那批组件重编驱动**:`bash scripts/build/rebuild_binaries.sh [bootmenu netmgrd audiod audio launcherd]`。在干净 checkout / git worktree 里**开箱可跑**:兼容 HOME 里补 `.tools`(zig 工具链)与 `patch_v2`,`meow_ui.a` 自动从主 checkout 取(取不到会报错列出试过的路径),产物就地写回 `patch_v2/<组件>/`。 |
|
||||
| `verify_fingerprints.sh` | **产物语义指纹自证**:`bash scripts/build/verify_fingerprints.sh`(`--self-test` 自检判据非空)。重编后 md5 必变,能证明「产物含哪些源码改动」的是字符串/动态段/4263 反汇编判据;time32 门禁的退出码计入 FAIL,不会假绿。 |
|
||||
| `test_build_devkit.sh` | `build_devkit.sh` 的回归测试(不重编;热缓存约 15s,冷启动需先重建基线 1–2 分钟):stamp 命中时 `--with-sources` 必须产出完整 `src/`;`licenses`/`README` 被删要能恢复、`--verify-only` 必须拒绝;MANIFEST 漂移检测。 |
|
||||
| `DEVKIT.md` | devkit 的产物清单、许可证留痕(GPLv2 §3 / LGPL-2.1 §6)、可行性实测、time64 限制、上卡 PATH/busybox 关系。 |
|
||||
| `README.md` | 本说明。 |
|
||||
|
||||
Reference in new issue
Block a user