MeowOS
5aabede0cd
feat(launcher): M4 后台服务保活+后台播放(FRAMEWORK_DESIGN §5/§9 落地)
- app.json 新字段 background/background_audio 解析入 struct app/meow_acct 注册表
- meow_ipc.h:MSG_REGISTER(m_register_t)/SERVICE_OK(m_ack_t.status=pid)/SERVICE_STOP/
MSG_SYS(m_sys_t, SHUTDOWN=1/SVC_DEAD=2) 负载结构落地
- 新模块 meow_bgplay.c/h(自包含+ops 注入,仿 meow_media,宿主可单测):
· 后台播放保活——声明 background_audio 且媒体会话 PLAYING 的 App nav-exit 不终止,
进程+音频流保留;UI 冻结走 §10.5 /tmp/meow_notif_active SDK present 自抑(非字面
SIGSTOP:冻结同进程播放线程断供 PCM,§10.5 真机实证);点图标/媒体卡片回前台=
原进程恢复(chain/picker 忽略),停播后再退出=真退 SIGTERM
· 无头后台服务——MSG_REGISTER spawn/stop/reap + 退避重启 1/2/4/10s cap +
max_restart 熔断(清该 App 通知 + 注册连接广播 MSG_SYS{SVC_DEAD},重注册复位)
· 卡拔例外(卡上二进制后台 App/服务仍 SIGTERM 防 SIGBUS)、崩溃照收、
关机前 meow_bgplay_kill_all 有界回收(含 MSG_SYS{SHUTDOWN} 广播)
- util.c:MSG_REGISTER/MSG_SERVICE_STOP 分发(权限/声明校验链)+ ipc_conn_alive 连接
存活查询 + meow_ipc_process 末尾挂 meow_bg_housekeep(drain/reap/退避 tick)
- app_launcher.c:launch_app_chain 入口 resume(bg_take 原进程回前台)+ nav-exit
保活分支 + 转后台出口(杀看门狗/写自抑标记/复位顶条,跳过退出尾)+ 冷启动自动
拉起静态 keepalive(mode=0) 服务(exec 路径约定=App 同目录 <svc> 文件)
- main_menu.c:应用列表「·后台」标注(宫格/列表,1s tick 按 change_seq 刷新)+
两条退出尾 kill_all + unlink NOTIF_ACTIVE
- 宿主单测 test_bgplay.c 50 项全过(真 fork 子进程走状态机 + 假时钟退避熔断);
test_media/test_notif_panel/test_notif_tf/test_vol_ramp_jack 回归全过;
zig-mipsel-cc -Wall -Wextra 0 warning。launcher md5=c07d011c0769fca14d3bfb752d735463
2026-09-01 18:09:09 +08:00
..
2026-08-30 21:38:30 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 16:08:01 +08:00
2026-09-01 04:28:10 +08:00
2026-08-31 03:41:51 +08:00
2026-09-01 18:09:09 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 19:12:51 +08:00
2026-08-31 03:41:51 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 20:17:51 +08:00
2026-08-30 01:12:34 +08:00
2026-09-01 04:28:10 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:09:09 +08:00
2026-08-30 21:38:30 +08:00
2026-08-30 14:14:30 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 07:53:57 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 18:09:09 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 15:23:32 +08:00
2026-08-30 21:38:30 +08:00
2026-08-31 05:46:46 +08:00
2026-08-31 05:46:46 +08:00
2026-09-01 17:37:26 +08:00
2026-09-01 14:44:55 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 03:41:51 +08:00
2026-09-01 04:28:10 +08:00
2026-09-01 04:40:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-31 13:36:23 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-08-30 01:12:34 +08:00
2026-09-01 04:28:10 +08:00
2026-08-30 21:38:30 +08:00
2026-08-31 03:41:51 +08:00
2026-09-01 18:09:09 +08:00
2026-08-31 05:09:42 +08:00
2026-08-30 13:42:41 +08:00
2026-08-31 14:34:28 +08:00
2026-08-31 19:12:51 +08:00
2026-08-31 06:51:04 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 15:23:32 +08:00
2026-08-31 19:12:51 +08:00
2026-08-30 13:02:17 +08:00
2026-08-31 18:21:40 +08:00
2026-09-01 15:23:32 +08:00
2026-09-01 04:28:10 +08:00
2026-09-01 18:09:09 +08:00
2026-08-31 03:41:51 +08:00