AskaEth
|
9faaf14c86
|
build(fw): M66 重编 netmgrd/launcherd/audiod + 钉值回写(0.8.52)
main 9be4470 已含 M64(三条 root 命令注入修复:netmgrd execv 改造、
launcherd netmgr_ipc.c)与 M65(launcherd popen 超时/256KB 上限、
audiod static 缓冲、netmgrd bt_scan 有界收割 + 扫描单位修正),
而仓内钉值仍是 M56(0.8.51)时期的产物 → 二进制落后于源码。
重编(zig 0.17.0 / zig-mipsel-cc,同一批次口径):
meow_netmgrd 222228 B 02577210… → 221620 B d791d004…
meow_launcherd 902044 B 75629078… → 904972 B 5c576262…
meow_audiod 71076 B 4a6ab894… → 72212 B 9b813a64…
meow_audio 88888 B 3909c8d2… → 88888 B 3909c8d2…(逐字节相同,不重编)
meow_watchdog 100116 B 25f76950… → 100116 B 25f76950…(逐字节相同,不重编)
fw_content.conf 只改 md5 变动的 4 行(launcherd / audiod / netmgrd 两行同源);
desc 列一字未动。M61 指出的 meow_power「policy 期3桩」desc 在 M56 已改写为
「policy show / set profile 与 calibrate start / stop / list(…已实装,非桩)」,本轮核对无需再改。
未动 4 个旧工具链产物(meow_mdns / meow_svc_power / meow_verify / am)md5 保持原值。
门禁:verify_fingerprints PASS=33 FAIL=0;test_time32_abi --builds 11/11 PASS
(含 watchdog);反绕过:netmgrd/meow_audio 去 meow_time32 后 16B-layout=FAIL,
watchdog/launcherd 去 time32 直接链接失败(meow_time32_sleep_us / meow_ui_time_ms 未定义)。
|
2026-11-12 09:12:06 +08:00 |
|
tower
|
d34406ac22
|
chore(fw): M56 重编 5 件受源码变动影响的产物 + 钉值回写 + 可复现打包器(0.8.51)
- 重编 netmgrd(M54 ACL)/audiod(M55 BT 增益 + M52 bind 失败即退)/launcherd(M52 multi_font 收口)/
watchdog(M52 资源告警);meow_audio 源码未变,重编逐字节相同(md5 不变)
- fw_content.conf:5 条 md5 回写 + meow_power desc 去掉「policy 期3桩」(已实装)
- 新增 scripts/build/repack_repro.sh:mksquashfs -repro-time + genisoimage -creation-date
+ mtime 归一化 + 半成品防护(先写暂存再 mv、体积下限自检)
- build_fw_apps.sh:优先走可复现打包器、XIMAGE/TMPDIR 可在干净 checkout/worktree 覆盖
- rebuild_binaries.sh:新增 watchdog 目标(build_watchdog.sh 的 ROOT/.tools 在 worktree 不存在)
|
2026-11-12 08:25:04 +08:00 |
|
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 |
|
AskaEth
|
7a32b0690e
|
fix(m43): r1 评审 P2 — 语义断言入仓 + audiod 表述对齐产物
- test_time32_abi.sh 增加 16 字节 time64 布局断言:4263 后必须写 tv_sec 0x0/0x4
(含 sra 符号扩展)+ tv_nsec 0x8;支持「内联」与「调用后转换」两种编译形态。
自证:amsd 出货件 FAIL、修复后 amsd PASS、不加修复重编 sysui FAIL。
- build_audiod.sh / fw_content.conf:41 的 audiod 例外说明改为:「出货件是旧工具链
静态 musl,4403→ENOSYS→4263+宽度转换本身健康;glibc-2.22 目标同样无 ABI 错位」,
不再单称 glibc-dynamic。
|
2026-11-11 18:51:16 +08:00 |
|
AskaEth
|
884d4c4891
|
fix(fw): M43 系统组件接入 o32 time32(9 组件 + meow_audio CLI)
- 构建脚本链 ../sdk/meow_time32.c + -DMEOW_TIME32_LIBC_OVERRIDES:
sysui/svcd/bootmenu/amsd/netmgrd/crash/svc_perf/powermgr/meowpanel,
以及 musl-static 的 meow_audio CLI(monitor 取时/轮询)
- meow_audiod 守护例外:glibc-2.22 time_t 32 位,无 musl time64 ABI 错位,不链
- 重编 10 个产物:反汇编 4263=3 / 4403=0,__clock_gettime 按 16 字节布局写回
- test_time32_abi.sh 收紧为 addiu 系统调用号匹配,避免 .text+0x1133x 偏移误报
- fw_content.conf 同步全部新 md5(清单逐行校验通过)
|
2026-11-11 18:51:16 +08:00 |
|
AskaEth
|
58cdb73bf8
|
fix(launcherd): M42 包安装入口改委托 nyai — 删内联解包/验签/部署,复用 M35 安全链
- app_launcher.c 删掉 meow_pkg_install 旧内联实现(文件名推包名、硬要 .mpk 后缀、
rm -rf 目标目录直解、失败不回滚 .bak_、不拒 ./..、系统包大小写敏感比较);
导出保留签名逻辑不动(验签仍只 shell-out meow_verify)。
- 新增 pkg_install.c:fork+exec /usr/bin/nyai install <路径>(argv 直传不经 shell;
MEOW_NYAI_BIN 覆写,缺省不走 PATH)。包身份/暂存/清理/防降级/大小写全由 nyai 闭环。
- stdout/stderr 分两条管道收:nyai 进度是缓冲 stdout,错误是即时 stderr,合流会把
真错误顶掉(真机首测即踩到);错误文案只取 stderr 尾行。
- start/poll 两段式(+busy 查询)供 UI 主循环按帧驱动不假死;同步封装 20ms 切片轮询,
180s 超时 SIGTERM→SIGKILL,不用时钟 ABI(M40 time32 教训)。
- main_menu --pkg-install 失败打 stderr 可读文案、退出码统一 0/1。
- test_pkg_install.c:44 断言(路径预检含任意文件名可装/目录/不可读/控制字符/超长、
错误文案矩阵、argv 直传、start 立即返回、并发拒装、超时、nyai 缺失)。
- 重链 meow_launcherd 894940B/cea0a735(链 meow_ui.a 86800633,0 warning);
fw_content.conf 同步钉值。
|
2026-11-11 16:37:00 +08:00 |
|
AskaEth
|
63b278e13e
|
fix(watchdog+launcher+sdk): M40 电源键 time64 ABI + 锁屏/叠加残留链
- sdk/meow_time32: 抽出可独立链接的 o32 time32 取时/睡眠设施(不依赖 meow_ui.a,
watchdog 等独立静态组件可直接链;可选 -DMEOW_TIME32_LIBC_OVERRIDES 接管 libc 入口)
- watchdog: now_ms/usleep 改走 time32(修复 held 变天文数字→每次单击都弹菜单);
阈值读 power.longpress_menu_ms/forceoff_ms(缺省 3000/8000),删除
PWR_TOGGLE_MS==PWR_MENU_MS;新增 wd_power.h 纯判定 + 宿主行为矩阵测试
- launcher: App 前台电源菜单补齐 §10.5(notif 全抑制 + 帧恢复 + SIGCONT 排空 +
标记翻回前台);show_power_menu 恢复进入前背景帧(关闭后不再停留菜单画面);
重绘挪到首轮按键采样之后;activity 标记排空窗 + 会话入口清理 + manual_off 去闩锁
- lock_screen: 电源改按下边沿 + 进场 300ms 才熄屏;电源熄屏退出也恢复底层帧;
launcher 在 SIGCONT 前写 /tmp/meow_app_repaint,SDK present 消费并 dirty_full
- power_menu: 菜单内强关接 power.forceoff_ms(按 longpress 抵扣),日志不再谎称 8s
- 重编 meow_ui.a 并重链 meow_launcherd/ncm/files/hello/reader(picbrowser 无源码)
- fw_content.conf: 同步 launcherd/watchdog 新 md5;顺带修正 M35 遗留的 nyai 失效钉值
Host: test_wd_fw 66/66、test_overlay_gate 40/40、test_meow_time64/time/repaint PASS。
真机未验证(设备关机);未刷机、未写设备。
|
2026-11-10 22:51:00 +08:00 |
|
AskaEth
|
6c6da79ad9
|
fix(launcher+fw): M39 r1 评审 P2 — 固件清单钉值同步 + APPS.md 守卫文档改到 150ms
- scripts/build/fw_content.conf:launcherd 钉值 bb2d5f12→e342d24f(本分支重链产物 891,164B),
desc 补 M39 输入门与「链 meow_ui.a 8525aa6b」;同文件顺带修一处 pre-existing 打包阻塞:
nyai 仍钉 M2.97 的 a7d24553,而仓库内二进制自 M35(cf5703b 评审 r1) 起已是 ef7940ec →
从 main 打包固件会在该行 exit 1(与本单无关,但同一文件同一类错)。
- APPS.md §4.7:冷却 2500ms → MENU_TOUCH_GUARD_MS(150ms);写清「drain 才是防重放机制、
时长只是面板重配尾巴守卫」;副作用段改为真实敞口(drain 之后硬件新产生的幽灵 1.2s 与
150ms 都盖不住,只能靠真机日志收口),并指向 test_meow_ui_home_gesture T4。
- 校验:复刻 build_fw_apps.sh 第 4 步逐条 md5 强校验(真实 conf、临时 DST)→ 30 条全过、
无 exit 1,装入的 launcherd = e342d24f、nyai = ef7940ec。
|
2026-11-10 22:16:59 +08:00 |
|
AskaEth
|
1f692ae2a7
|
fix(ntp): M22 r1 评审 P2×3 — 孤儿 ntpd 收尸 / 日志失败不吞 hwclock / 锁自证
r1 评审 verdict=p2-3items,三条均已按评审给的修法修掉,且都补了可证伪的回归断言。
P2-1 SIGTERM 后遗留孤儿 ntpd,之后每次静默 skip 且 rc=0
- attempt() 把子进程记进全局 NTPD_CHILD 并落盘 <锁目录>/ntpd.pid;
新增 cleanup()(EXIT trap)先收尸子进程再释放锁;新增 on_signal()
(INT/TERM/HUP)清理后 exit 143——旧代码的 TERM trap 只清锁、不 exit,
被杀后还会继续跑完看门狗。
- 取代原来的 "pidof ntpd 就 skip":新增 reap_or_skip_ntpd(),用
/proc/<pid>/cmdline 是否含本锁目录来区分「我们自己遗留的孤儿」(收尸)
与「别人的常驻 ntpd」(让路)。崩溃后留下的 ntpd.pid 也据此校验,
pid 被复用时不会误判成外部 daemon(不会永久 skip)。
- S45 stop 不再按陈旧 pid 文件盲杀:只从 <锁目录>/<pid> 取持有者,
再核对 /proc/<pid>/cmdline 含 meow_ntpsync 才 kill。
P2-2 日志重定向失败导致 hwclock 根本不执行
- persist_rtc 改 ">/dev/null 2>>$LOG_FILE":hwclock 的 rc 与日志写入解耦。
- 新增 prepare_log():启动时在子 shell 里试写日志,不可写就整体退化 /dev/null。
必须用子 shell——`:` 是 POSIX 特殊内建,它的重定向失败会让 dash 直接
退出整个脚本(本单自测先踩到了,rc=2)。
P2-3 锁 mkdir→写 pid 有窗口,并发抑制非原子
- 锁的持有者改由 <锁目录>/<pid> 子目录自证(mkdir 原子),不再写 pid 文件;
读到空锁时给 3s 宽限而不是立刻判死。
- 清失效锁改用 mv 到 <锁目录>.stale.$$(rename 原子),并发清锁时只有
一个能成功,避免「抢锁失败方删掉胜方的锁」。
- 退出只删自己的锁:没有自己的 <pid> 子目录就不动锁目录。
验证
- 新增回归断言 11-16(run_tests.sh):SIGTERM 收尸/锁释放、遗留孤儿收尸、
日志不可写仍写 RTC、锁被占用不抢、死锁可接管、pid 复用不阻断。
- 可证伪性:新套件跑旧代码(c9f0cba 的 meow_ntpsync)→ 6 条 FAIL
(孤儿 alive、日志不可写 rc=1 且 hwclock 未执行、抢锁并发调 ntpd×3)。
再跑「仅回退 STALE_NTPD 硬化」的变体 → pid 复用那条 FAIL
(rc=0 但 RTC 未写,正是评审指出的静默失效)。
- dash 与 busybox ash 各 41/41 PASS,rc=0;dash -n / busybox sh -n 均 0 错。
- 时间断言放宽为负载容忍(宿主是多 agent 共享机,实测 sleep 5 能跑成 85s),
假 ntpd 改为挂 3600s,保证上界仍能证明是看门狗掐断而非自然退出。
fw_content.conf: meow_ntpsync md5 ad324e3f→f3c3abe4,
S45meow_ntpsync md5 25454a3f→115e7592(50meow_ntpsync 未改,md5 不变)。
|
2026-11-06 13:34:45 +08:00 |
|
AskaEth
|
c9f0cbaab6
|
feat(ntp): M22 网络校时 — 复用固件自带 ntpd + hwclock 回写 RTC
真机实测(0.8.47,2026-11-06)定位到的根因不是「没有 NTP 客户端」:
固件自带 ntp-4.2.8p14(/usr/sbin/ntpd)和 /etc/ntp.conf(4 个 pool.ntp.org),
但没有任何 init 脚本/进程启动它 —— 有客户端、没启动。
实测证据:
- RTC 存在且可读(/dev/rtc0,10003000.rtc),内核开机 hctosys=1,
冷启动不回到 1970 → 掉电保持;RTC 存 UTC(since_epoch == date +%s)。
- 但 RTC 会走慢且无人纠正:实测系统时间比 NTP 慢 49 s;把系统时间人为
拨错 4 h 后观察 65 s 无人纠正,RTC 也不跟随系统时间。
- UDP/123 出网正常(ntpd -q 一次成功 time set +48.877s);DNS/HTTP 正常。
- udhcpc 的 default.script 不处理 option 42,实测热点也不下发。
- ntpd -q 不会回写 RTC(步进后 sys-rtc 仍差 49 s)→ 必须 hwclock -w -u。
- ntpd 没有超时参数,无服务器时永久存活 → 必须自带看门狗。
- -p 形式的 server 首个 poll 要 ~64 s;配置里加 iburst 后 8 s 内返回。
实现(新增,不改任何基线文件):
- /usr/bin/meow_ntpsync:一次性校时器。复用 ntpd -q -g + 运行时生成的
iburst 配置;内置 IP 兜底(阿里/腾讯/Cloudflare)→ DNS 名兜底;
单次 15 s 看门狗、默认路由轮询、1 h 短路、进程锁、失败静默。
成功严格校时后 hwclock -w -u 回写 RTC(RTC 存 UTC,必须 -u)。
- /etc/init.d/S45meow_ntpsync:开机只 setsid 后台拉起并立即返回
(关键路径 +0 秒;后台最长约 150 s 自行退出),失败不阻断 init。
- /usr/share/udhcpc/default.script.d/50meow_ntpsync:只在 bound/renew
触发(设备上唯一可靠的「网络就绪」事件),后台拉起后立即 exit 0;
有 $ntpsrv(option 42)就优先用。基线 default.script 本就有 HOOK_DIR
循环,目录原本为空。
- tests/run_tests.sh:宿主沙箱单测(假 ntpd/hwclock/网络探测)。
验证:dash 与 busybox sh 各 sh -n 通过;单测两套 shell 各 23/23 通过;
真机(/tmp 下运行,未装系统目录)首跑 8 s rc=0、ntpd slew 成功、
RTC 由 1793940395 写成 1793940452(49 s 偏差被纠正)、hwclock -u -r 吻合;
二次运行 0 s 短路;-b -t 3 无网络 5 s 退出 rc=1;
DHCP 灌入不可达服务器 192.0.2.x 仍靠 IP 兜底在 ~10 s 内成功。
|
2026-11-06 12:49:13 +08:00 |
|
AskaEth
|
f9c2ea42a4
|
fix(boot): M21 r1 评审 P1 — bl_cap 把 cur=0 当「无有效值」照写 20(+P2 两处)
P1 根因(评审给的真机驱动证据链,已按其最小修法改):
/module_driver/pwm_backlight.sh 是 `insmod pwm_backlight.ko ... default_brightness=0
max_brightness=101`,模块 init 把 props.brightness 置 0 再 update_status(PWM 0 分支)→ 上电即灭屏;
该模块由 S11module_driver_default 加载,rcS 自然序排在 S11jpeg_display_shell 之后。于是:
- 函数入口那次 bl_cap:背光节点还不存在,写必然失败(no-op);
- fb0 出现后画图前那次 bl_cap:读到 cur=0,旧条件 `cur <= cap` 命中「只降不升」跳过分支,
20 从未写入 → 画图时刻亮度 0。
物理后果两头都是缺陷:面板仍亮则 logo 依旧亮(原问题没修);面板灭则 S11~S21 无可见 logo,
settings.conf 缺失时直到 launcherd 才亮屏(相对 stock「0.1s 后写 60」是回归)。
修改:
- bl_cap 判定改为「仅 1 <= cur <= cap 才视为已有有效值跳过;0 / 空 / 非数字一律照写」。
S22 抢写 1 的竞态保护不变(1 落在 1..20 → 仍跳过,不会被顶回 20)。
- 删掉函数入口那次 bl_cap(节点未建,必然 no-op,且是重定向报错的来源);只保留 fb0 就绪后、
画 logo 前那一次 —— 同一驱动脚本里 pwm_backlight.ko 先于 soc_fb.ko 加载,fb0 出现即节点就绪。
- 写入成功时打一行 `backlight: -> 20 (was N)` 便于刷机后复核;`2>/dev/null` 移到 `>` 之前,
节点未就绪时连重定向报错一起吞掉(P2-1)。
- S22:失败路径日志由「保持 S11 低亮度」改为「不改背光(当前 brightness=N)」(P2-2);写入失败
日志同样附当前读数;写入处的 2>/dev/null 次序一并改正。
- 头部注释按时序真相重写(驱动默认 0 = 灭屏,不是「上电很亮」)。
实测(沙箱重写 sysfs 路径 + stub cmd_jpeg_display/nanddump/sleep,dash 与 busybox 各一遍):
cur=0 → 画图时刻 20、结束 20(修复前 0/0);cur=1 → 1/1;cur=60、cur=101 → 20/20;
竞态(fb0 就绪前外部写 1)→ 画图时刻 1、结束 1(未被顶回);节点不可写时 stderr 0 行、仍画图、rc=0。
S22 19 用例全 rc=0(仅 usage rc=1,rcS 不可达)、sleep 调用 0、行为与改文案前一致。
S11 与 S22 内容均变 → fw_content.conf 两条 md5 同步更新为
3ad33301fb9f0884102a47e17a1985ed / 1a0aa33d6f806f3f1648168cc1d8b953
(未改动 meow_watchdog 那条:main tip dfde95b 仍是 553840cd,与本单无关,已在报告中提示。)
|
2026-11-05 22:04:16 +08:00 |
|
AskaEth
|
0ab23161b6
|
fix(boot): M21 开机 logo 亮度 — S11 画前压到 <=20 + 新增 S22brightness 按用户设置恢复
冷启动 logo 很亮:stock S11 是画完 logo 之后才写死 60,画图那一刻用的是面板上电默认高亮;
而 S11 早于 S21mount_ubifs,那时 /usr/data 未挂载、读不到 settings.conf,只能写死一个值。
- S11jpeg_display_shell:以基线(249220f2)为底,把背光压制挪到画 logo 之前(jpeg_display
函数体内、先于 cmd_jpeg_display),值 20(只降不升:S22 已写更暗则不覆盖);删除画完后
写死 60 的那行;/dev/fb0 等待、mtd5 主题判定、后台 jpeg_display & 语义不变;
主题判定 `==` 改 `=`(POSIX test,语义不变,便于宿主验证)。
- S22brightness(新):S21mount_ubifs 之后运行,读 /usr/data/meow/settings.conf 的
display.brightness,按 display.brightness_min 与 sysfs max_brightness clamp 后写入;
读不到/解析失败不改背光(保持 S11 低值)、无 sleep/重试、任何运行期失败 exit 0;幂等。
- scripts/build/fw_content.conf:登记两条(S11 覆盖基线同名文件、S22 新增),md5 实算,
说明列写清 S11 < S21mount_ubifs < S22 的顺序依赖。
- scripts/build/README.md:补「覆盖基线已有文件」语义(无条件 cp -f,不校验基线 md5、
也不跳过已存在文件;唯一基线校验仍是 hiby_player)。
固件需整包刷机才生效,未刷机、未写设备。
|
2026-11-05 22:04:16 +08:00 |
|
AskaEth
|
316d9d42c7
|
build(fw): 同步 watchdog 的 md5 到 M19 重编后的二进制
M19 把 meow_watchdog 重编为 ad8c1f2b(首次把 M6.23 的亮屏亮度修复真正编入),但
fw_content.conf 第 32 条仍 pin 旧值 553840cd,build_fw_apps.sh 的强校验会在该条中止。
本提交只改这一行 md5 与该条说明。
注:scripts/build/ 被 .gitignore:68 忽略,而这些文件本就已跟踪,故需 git add -f。
|
2026-11-05 21:54:23 +08:00 |
|
AskaEth
|
c811913c06
|
build(fw): M6.46 固件 — 编入 M7 杀后台修复 + M11 SDK 时钟修复(0.8.46)
- launcher bb2d5f12 (863160B) 重编,链 meow_ui.a 4c4a1554:
M7(bgmgr_can_kill 门控 framework→protected_app / 后台页 sub 指针持久化 /
am kill 走 meow_bg_terminate 与页面按钮同通道) + M11(meow_ui_time 按 o32 time32 取时、
链接期接管 __clock_gettime*)
- meow_amsd b698f176 (139252B) 重编:M7 am kill 同通道 + cmd_kill/cmd_start 失败原因细分
(am CLI 9e323faf 保持不动:am.c 自 ca2290e 未变,与仓库发布物一致)
- fw_content.conf 8 条源 md5 对齐:bootmenu 4441822d / watchdog 553840cd / audiod b122c9b8 /
meow_audio 891ab264 / netmgrd×2 20243ea1 / launcher bb2d5f12 / amsd b698f176;头注 M6.46/0.8.46
- build_fw_apps.sh:repack.sh 改 bash 显式执行(#!/usr/bin/env bash 在 su 下 bad interpreter)
- 打包 r3proii_m6_46.upt md5 66501aaf(42,930,176B):rootfs 38,756,352<=45,088,768,
unpack 0 diff,87 files/1 folder 与 m6_45 一致
- 卡上写 r3proii.upt(66501aaf),原 0.8.45(3f4a8ad3) 备份 r3proii.upt.bak.0.8.45;
写前写后 du -sk Music 均 199164544;未刷机(运行中仍 43ac2312 / 0.8.45)
|
2026-11-05 20:16:29 +08:00 |
|
AskaEth
|
06f872faf2
|
fix(fw): M6.42 收编audiod开机路由武装瘦身(防楔死) — 推卡
- audiod 重编 d833abce(0warning, glibc-dynamic≤2.17): 去无条件apply_route(5)→target双写,当前端口正确则跳过强烧,仅未武装/端口不对/读失败才写目标;保留M2.91防挂死武装(numid=9语义/popen有界超时/D态抛弃/io_thread未动)
- SDK未变(meow_ui.a 207630cb沿用); launcher 9013f843未变; netmgrd 9c345b2e/meow_audio 6864ec38/amsd 57e19cde 未变
- 固件 r3proii_m6_42.upt 6d7c1168(0.8.42, rootfs 38719488<=45088768, unpack 0 diff); 已上卡+备份r3proii_prev_m6_42=2a966f2b+rm recovery_all+升级重启; 设备已回网0.8.42
- reader eacd0e6c/files 01ad3f01 卡上已热更未动(不在固件)
- 注: audiod瘦身是驱动楔死缓解,需用户后续多boot复测(不在本收编范围)
|
2026-09-04 20:48:02 +08:00 |
|
AskaEth
|
4ce7a268a8
|
fix(fw): M6.41 收编启动失败原因透传+后台管理按钮点不动修复+主菜单微调 — 推卡(固件已上卡,设备待回网补reader热更+校准)
- launcher 9013f843(启动失败原因透传+后台管理按钮点不动修复+主菜单字体/样式微调) / reader 5a0c8776(左缘返回+view栈+字体瘦身+页位图释放)
- SDK未变(meow_ui.a 207630cb沿用),不重编meow_ui.a/不重链ncm/hello/files(files已热更01ad3f01不动)
- 固件 r3proii_m6_41.upt 2a966f2b(0.8.41, rootfs 38719488<=45088768, unpack 0 diff); 已上卡+备份r3proii_prev_m6_41=28191ae7+rm recovery_all+触发升级重启
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 保持
- 注: 设备升级后未回网(WiFi已知问题,超~5分钟),reader热更+升级后验收+红线校准待设备回网后补
|
2026-09-04 19:50:55 +08:00 |
|
AskaEth
|
626a87a30d
|
fix(fw): M6.40 收编系统级音量翻页映射(MSG_KEY_PAGEUP/PAGEDOWN)+P1 MD3(select面板28/对话框按钮胶囊)+阅读器UI改版 — 推卡(固件已上卡,设备待回网验收)
- meow_ui.a 重编 207630cb(0warning): select面板28/对话框按钮胶囊h/2
- launcher f1980f4f(音量翻页系统映射) / hello 92c7ba17 / files 66bdb60d / reader 9c2a25e0(阅读器UI改版) / ncm e796282e
- 固件 r3proii_m6_40.upt 28191ae7(0.8.40, rootfs 38719488<=45088768, unpack 0 diff); 已上卡+备份r3proii_prev_m6_40=a671b8ba+rm recovery_all+触发升级重启
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 保持
- 注: 设备升级后未回网(超8分钟),四App+面板热更与升级后验收待设备回网后补
|
2026-09-04 18:24:16 +08:00 |
|
AskaEth
|
b364b6371a
|
fix(fw): M6.39 收编SDK LazyGrid/LazyColumn/LazyRow MD3容器化+SDK全局App内底部上滑回桌面(系统手势优先) — 推卡
- meow_ui.a 重编 0fb87579(0warning): meow_list/lazygrid 默认container=1 + meow_ui_input_is_home_swipe/MEOW_EV_HOME
- launcher a21243b6 / hello 96d14310 / files a9de683f / reader 3e8be7cb / ncm 47954e2c (重链新meow_ui.a)
- 固件 r3proii_m6_39.upt a671b8ba(0.8.39, rootfs 38715392<=45088768, unpack 0 diff)
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 保持
|
2026-09-04 14:01:26 +08:00 |
|
AskaEth
|
d0a5901ffb
|
fix(fw): M6.38 收编SDK对话框MD3细化+批②底部上滑回桌面+批6 ncm顶栏回播放页+批④面板后台列表+launcher UI微调+封面空artwork保留 — 推卡+面板热更
- meow_ui.a 重编 4c006844(0warning): meow_ui_dialog MEOW_SHAPE_EXTRA_LARGE 28
- launcher c9218411 / hello 63824093 / files c9309774 / reader 0d462111(未变,不拉对话框对象) / ncm 2b33b1dc
- 固件 r3proii_m6_38.upt 7b6ce4a5(0.8.38, rootfs 38715392<=45088768, unpack 0 diff)
- meowpanel 后端 fcb2f658 + web(index/css/js/mp_pages) 热更 MeowOS/opt/MeowPanel, /api/ams/bg 新增, 运行中新二进制
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 保持
|
2026-09-04 13:23:56 +08:00 |
|
AskaEth
|
b3ce719742
|
fix(fw): M6.37 收编SDK默认列表MD3容器化(meow_listview_create默认container=1)重编meow_ui.a重链四App — 推卡
- meow_ui.a 重编 14f218d7(0warning): meow_listview_create默认container=1,行=surfaceContainer圆角卡+空隙+去分隔线+卡内tonal选中
- launcher e7fd28dd / hello c10a3ea5 / files 90a6e817 / reader 0d462111 / ncm 6f3967f8 (重链新meow_ui.a)
- 固件 r3proii_m6_37.upt a8dd8f54(0.8.37, rootfs 38715392<=45088768, unpack 0 diff)
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 保持
|
2026-09-04 12:29:23 +08:00 |
|
AskaEth
|
4d0a8450e9
|
fix(fw): M6.36 收编全面MD3对齐+批①叠加/列表外距/后台图标/后台圆角卡+重编meow_ui.a重链四App — 推卡
- meow_ui.a 重编 d02c0f57(0warning): MD3对齐(meow_ui_widget/widgets:容器/胶囊/shape)+批①叠加共享判定+meow_img_pixels+meow_ui_audio
- launcher 0c4f3c10: MD3全面对齐(subpage/settings/bg/MENU列表圆角卡8px外距/按钮胶囊/状态层/shape)+批①叠加/穿透根治(7处转场)+顶栏后台按钮图标+后台管理页圆角卡
- 四App热更: ncm df149a9c / hello f3ac1fc0 / files f37d66c7 / reader b6cbc050(reader四格式冒烟全过)
- 固件 r3proii_m6_36.upt 91ccf411(0.8.36, rootfs 38715392<=45088768, unpack 0 diff)
- netmgrd 9c345b2e/audiod 9f47c8fd/meow_audio 6864ec38 未变; amsd 57e19cde 已M6.35收编
|
2026-09-04 12:00:59 +08:00 |
|
AskaEth
|
b23c6d53c4
|
fix(fw): M6.35 收编批③后台管理页(按钮化)+amsd FG/BG+i18n — 推卡
|
2026-09-04 02:57:26 +08:00 |
|
AskaEth
|
2f22e26de7
|
fix(fw): M6.34 收编批①后台常驻+宽限期+audiod A3/DSD+meow_img_pixels+重编meow_ui.a重链四App — 推卡
|
2026-09-04 02:00:39 +08:00 |
|
AskaEth
|
7e68313981
|
fix(fw): M6.33 收编launcher播放页占位符移除+封面空→复原恢复 — 推卡
|
2026-09-04 00:19:31 +08:00 |
|
AskaEth
|
76a22a6a91
|
fix(fw): M6.32 重编meow_ui.a+重链四App(播放页进度条取色+ncm列表gap)+面板透传 — 推卡+热更四App
- meow_ui.a 重编(86af4d29): SDK W_PROGRESS 改读 opts.bg/fg=轨道/填充(agent-408)
- launcher 513d7603: 播放页进度条/按钮局部重绘接取色(np_grad_row/np_page_bg_row/np_theme_widgets)
+ 链新 meow_ui.a + sdk meow_lyric/lyric_view/meow_img_color; 经固件 /usr/bin 刷入
- ncm 05ff05f1 重链新 meow_ui.a(agent-409 列表项 gap 已入源), hello f35495a5 / files 5d70b7b2 重链
- meowpanel.c: audio_fill 补透传 audiod target/volctl/codec(输出目标/音量AVRCP/编解码器)
前端 meowpanel.js 已前向兼容; 宿主 /api/audio JSON 验证含三键
- fw_content.conf launcher 0cdf940f -> 513d7603(M6.32)
- r3proii_m6_32.upt md5 8ce917ad(0.8.32, rootfs 38707200<=45088768, unpack 0 diff)
|
2026-09-03 23:42:46 +08:00 |
|
AskaEth
|
8971f6067b
|
fix(fw): M6.31 收编桌面歌词页封面修复+alsa.conf DEV自动识别(bt_dev) — 推卡
|
2026-09-03 22:43:05 +08:00 |
|
AskaEth
|
ef6eca86b1
|
fix(fw): M6.30 收编批5取色+蓝牙P2(audiod glibc-dynamic)+面板蓝牙卡 — 推卡+panel热更
|
2026-09-03 21:44:23 +08:00 |
|
AskaEth
|
a3679e3688
|
fix(launcher): M6.29 播放页任意右滑返回桌面(回退出np_gesture) — 推卡
|
2026-09-03 20:32:23 +08:00 |
|
AskaEth
|
0da68e4972
|
fix(fw): M6.28 收编桌面NowPlaying双页歌词页+歌词数据源+蓝牙P1(netmgrd/bt_page) — 推卡
|
2026-09-03 20:06:36 +08:00 |
|
AskaEth
|
29e13b2b5e
|
fix(netmgrd): M6.27 流量统计收编(pub_bytes/去lo) — 推卡+panel热更
|
2026-09-03 18:45:12 +08:00 |
|
AskaEth
|
4827cc8d92
|
fix(launcher): M6.26 播放页三键命中(push哨兵)+媒体卡片体FOCUS(点击开播放页) — 推卡
|
2026-09-03 14:54:41 +08:00 |
|
AskaEth
|
76eb2f4d1c
|
fix(bootmenu): M6.25 开机菜单/第二屏亮度按用户设置恢复(方案A:显示前读settings.conf写回) — 推卡
|
2026-09-03 14:40:56 +08:00 |
|
AskaEth
|
b5da7d7151
|
fix(launcher): M6.24 App内按电源键锁屏时序(松开边沿误判唤醒) — 推卡验收
|
2026-09-03 14:27:00 +08:00 |
|
AskaEth
|
ec8e43e1fd
|
fix(watchdog): M6.23 亮屏亮度按用户设置恢复(修 panel ON 固定60跳变) — 推卡
|
2026-09-03 14:12:21 +08:00 |
|
AskaEth
|
e448b9bfda
|
fix(launcher): M6.22 播放页返回根因修复 — np_exit 退出外层主循环(break错层级) — 推卡
|
2026-09-03 14:00:28 +08:00 |
|
AskaEth
|
e802cc678a
|
fix(launcher): M6.21 播放页返回诊断日志+阈值放宽(M6.20基础上) — 推卡
|
2026-09-03 13:50:40 +08:00 |
|
AskaEth
|
cd9d9da3bd
|
fix(launcher): M6.20 播放页右滑返回+顶部下滑通知中心+时钟1s刷新 — 推卡验收
|
2026-09-03 13:42:32 +08:00 |
|
AskaEth
|
3d70a3dd2c
|
feat: M6.10–M6.19 批量收编 + M6.19 推卡验收
- M7 launcher 重写 5 期(虚拟化宫格/meow_theme 单一权威/横幅动画/自定义 PIN 键盘)
- OOM 通用化(cachegov 上收 SDK)、自动切歌根治、meowpanel jv_free 泄漏修复、Hello 滚动卡顿修复
- ncm 歌词 UI / 媒体通知封面 / 封面分辨率 640
- 5 bug 修复:ncm 后台化 UI 叠层+点击穿透、再进 ncm 桌面叠层、播放页新旧 UI 叠层抢刷脏区(meow_ui_gfx 恢复边沿整帧重画)、PIN 亮屏亮度跳(keys.c meow_panel_on 按 settings_brightness_clamped 恢复)、通知中心封面显歌单封面(cover.c save_cover_raw 加 is_song + 命中块守卫)
- 四 App 统一重链新 meow_ui.a 51caee4a;M6.19=0.8.19 固件 2d2331f2 推卡自刷验收全绿
|
2026-09-03 12:16:01 +08:00 |
|
AskaEth
|
c2ee7626a4
|
fw_content: M6.9 收编 launcher 94a33b7b(327 M7.0b 试点)
|
2026-09-02 18:38:25 +08:00 |
|
AskaEth
|
e67cc50afa
|
fw_content: M6.9 候选 netmgrd 20243ea1(期4)+powermgr 1ef2f8af(期3)
|
2026-09-02 16:29:42 +08:00 |
|
AskaEth
|
4e0e7441fd
|
fw_content: M6.8 收编 launcher 42b6633a(310四轮 锁屏自睡)
|
2026-09-02 15:31:07 +08:00 |
|
AskaEth
|
cf8b0da3bd
|
fix(fw_content): 拆分 launcher+watchdog 与 audiod+audio 两个合并行 — 修 watchdog/audio CLI 被吞进 desc 不打包
build_fw_apps.sh 以 `IFS='|' read -r src dst md5 desc` 解析,launcher 与 audiod 的 desc 后误并入了
meow_watchdog / meow_audio(CLI) 条目,导致这两个二进制在固件打包时被当作 desc 文本【不】作为独立
条目安装(M6.0 时本为独立行)。拆回各一行,md5 均已对源文件校验证实一致。
|
2026-09-02 13:05:29 +08:00 |
|
AskaEth
|
9d5301f931
|
fw_content: M6.6 收编 launcher 62c817c2(310三期)
|
2026-09-02 11:52:06 +08:00 |
|
AskaEth
|
c7ef1ebb04
|
fw_content: M6.5 收编 audiod b122c9b8(315 孤儿会话回收)
|
2026-09-02 10:10:36 +08:00 |
|
AskaEth
|
57676766c0
|
fw_content: M6.4 收编 launcher 56dac860(310二期 EVIOCGRAB 锁屏+名称截断)
|
2026-09-02 08:17:37 +08:00 |
|
AskaEth
|
202caaf66b
|
fw_content: M6.3 收编 launcher 136dc67c(309 设置页5s+310 锁屏三连)
|
2026-09-02 03:43:12 +08:00 |
|
AskaEth
|
55f0dfe91d
|
M6.2 备料: S89 amsd.conf 热更 exec→/usr/bin 迁移; fw_content 收编 launcher 03dfcf76(锁屏+门控+名字)/amsd 026cad52(UTF-8 名字)/S89 a1ef9d65
|
2026-09-02 02:39:11 +08:00 |
|
MeowOS
|
06307dc4b2
|
M6.1 备料: launcher start audiod→meow_audiod(服务名统一收尾, e6bdd091 含286设置页迁移); fw_content 收编 286 launcher/287 powermgr期2 aedaf519/276 netmgrd期3 62369ebe
|
2026-09-01 22:18:24 +08:00 |
|
MeowOS
|
cd4e2c247f
|
feat(S89): 服务名统一 meow_*(用户定案)——S89 迁移旧 audiod.conf/mdnsd.conf 为 meow_audiod.conf/meow_mdns.conf(stop+rm+预置);SPEC_REF/meow_svcd.md 同步。launcher main_menu.c 的 svcd start audiod 调用待 286 交还后改(避让同目录)
|
2026-09-01 22:08:29 +08:00 |
|