feat(font+sys): 字库内存纪律(agent-215)+sysui接管launcher监管(agent-216)

215: meow_font.c 流式分块解码(gbk峰值40→23.5MB, 逐字节校验一致) + 多字体槽5→4+16MB驻留预算; 量化: gbk稳态驻留17.3MB vs common 4.2MB(OOM主因); meow_font.a→67113c03 meow_ui.a→223d5401
216: bootmenu让位(sysui在则start launcher让位, 不在则exec兜底) + S70预置launcher.conf enabled=1(+旧设备升级迁移); launcher崩溃可自动拉起; bootmenu 4441822d / S70 e435affc / S90 e0ace111
216注: S70早启动与选单共存为真机重点观察项
This commit is contained in:
MeowOS committed 2026-08-31 13:28:07 +08:00
1 parent 90e28e7b7e
commit c0f7a95719
10 files changed
+434 -92

No files matched your search

+15 -7
View File
@@ -16,9 +16,10 @@
- **只监护自己 fork+exec 出来的进程**:`waitpid` 需为父进程,这是「一个崩只拉起它」的可靠前提;
sysui **不做**「adopt 外部 pid」式监护(那只 probe `kill(pid,0)`、无法真正 waitpid/重启)。
- 要监管什么由配置决定;**默认配置只开启 `meow_svcd`**(符合定案「sysui 总监 → svcd 被监管 →
服务为 svcd 子进程」)。`launcher` 当前由 S90meow_bootmenu 的 `exec` 拥有,配置中登记但
`enabled=0`(避免双重拉起;真正移交需 bootmenu 让位,见 §6)。
- 要监管什么由配置决定;**默认配置开启 `meow_svcd` + `meow_launcherd`**(`launcher` 于 M2.83
launcher 监管迁移落地:由 S70 预置 `launcher.conf` 且 `enabled=1`,bootmenu 在 MeowOS 模式让位)。
bootmenu 仅在 sysui 不在时兜底 exec launcher;HibyOS 模式下 bootmenu 会让 sysui 停 launcher
(不与播放器抢 fb0)。详见 §6。
- `meow_mdns` 是 svcd 的服务子进程(svcd 负责 spawn/restart),sysui 本阶段**不直接监管**它
(避免与 svcd 双重管理);`§10.1` 的「mdns 崩→svcd 拉起(或 sysui 兜底)」——兜底可后续
在 `sysui.d/` 加一条 meow_mdns 条目实现(默认关)。
@@ -111,9 +112,14 @@ meow_sysui pid
## 6. 迁移说明 / 边界(诚实标注)
- **launcher 监管**:现网 launcher 由 `S90meow_bootmenu` 的 `exec` 拉起(bootmenu 拥有其生命周期)。
sysui **本阶段不拉起 launcher**(`sysui.d/launcher.conf` 默认 `enabled=0` + 注释);
launcher 真正归 sysui 需 bootmenu 让位(后续迁移)。sysui 代码完全支持加一条 launcher 条目即可。
- **launcher 监管(✅ M2.83 已落地)**:launcher 生命周期已由 `S90meow_bootmenu` 的 `exec` 移交
sysui。`sysui.d/launcher.conf` 现 `enabled=1`(`restart=always`/`backoff_ms=3000`/`max_restart=5`)。
- sysui 在 S70 拉起并监管 launcher(崩→按策略重启,稳定 30s 清零次数,超 max_restart→FAILED 停)。
- bootmenu(`meow_bootmenu.c`)MeowOS 模式:sysui 在 → `meow_sysui start launcher` + 让位退出
(不 exec launcher);sysui 不在 → bootmenu 照旧 exec launcher(兜底,防开不了机)。
- bootmenu HibyOS 模式:sysui 在 → `meow_sysui stop launcher`(会话级 user_stopped)再 fork 播放器,
避免 launcher 与播放器抢 fb0。
- 已部署设备兼容:S70 检测旧 `launcher.conf` `enabled=0` → 升级为 `enabled=1`。
- **mdns 监管**:由 svcd 负责;sysui 兜底条目默认关。
## 7. 编译
@@ -125,6 +131,8 @@ meow_sysui pid
## 后续(不在本阶段)
- launcher 正式移交 sysui 监管(依赖 bootmenu 让位)。
- `MeowOS/sysui.d/` TF 双源扩展(复用 svcd 板载优先语义)。
- 与 meow_watchdog / 崩溃捕获的职责对齐(见 WORK_STATE SDK 缺失清单 #5)。
- launcher 已在 S70 由 sysui 拉起(bootmenu 让位,见 §6);**真机待验证**:①MeowOS 模式 bootmenu
让位后 rcS 推进到 S92 是否稳定跳过播放器 ②HibyOS 模式 `sysui stop launcher` 与播放器 fork 的
短暂共存无 fb0 冲突 ③launcher 在 S70 早启动(先于选单)与 boot_menu=1 选单的 fb 共存。