Commit Graph
3 Commits
Author SHA1 Message Date
MeowOS 6d1189eadc fix(amsd): launcher 重启后 amsd 失联三修 — am 命令连接被陈旧 revents 提前关闭/ipc_xchg 无超时冻结/无自动重连
launcher 重启后 am start/kill (MSG_AMS_START/KILL 0x00A0/0x00A1) 不再转发到 launcher。

根因(均在 meow_amsd.c,launcher 无需改):
① am 命令连接被提前关闭(真根因):poll 循环 pfds[] 每圈未清零,上一连接关闭残留的
   POLLHUP/POLLERR 落在 pfds[2+i];accept 后同圈用陈旧 revents 处理新连接 → 误判 HUP/ERR
   提前 close(am 收 SIGPIPE/141)。launcher 重启后 EV 事件连接密集、每条约关闭 → 必触发。
   修:每圈 memset(pfds,0,sizeof pfds),新连接当轮 revents=0、下轮才处理。
② ipc_xchg 无收发超时 → 阻塞 read 冻结整个单线程 amsd(launcher 接受但不回包窗口)。
   修:设 SO_SNDTIMEO/SO_RCVTIMEO(tv_usec<1000000,否则 setsockopt 返 EINVAL 静默失效)。
③ ams_request_ctl 加指数短退避重试(2 次,250ms 基数),launcher 数秒内回来即自动恢复。

验证(宿主端到端):假 launcher 杀→重启 am start 恢复 OK;注入多条 EV 后 am list×10 全
exit=0(无 141);哑 launcher(接受不回包)am start ~2s 有界返回 ERR 且 amsd 存活可继续
am list。meow_amsd mipsel md5 c6c2eda2d63ac73c4b6fac29008e0c9b(am 不变 d687d8bc)。
不动 launcher/sdk/根目录文档。
2026-08-31 19:38:33 +08:00
MeowOS ab4da09e75 fix(sdk+launcher): 图标不渲染真根因(agent-219) — meow_ui_img.c scale_buf cover 采样把乘写成除(÷缩放比→采到源图左上角透明区,全丢); 改乘+居中裁剪偏移修正; 宿主旧测试用纯色图掩盖了该bug。+ main_menu App退出/结构变化重绘时 fb_pan_buf0_force 无条件pan回buffer0(防App翻页留buffer1致菜单残帧)
meow_ui.a→3e0ee8f7 launcher→9d0efc2f hello→9609ea6e files→90f5cf07 ncm→be8be221(均已上卡); 真机截图证据 .tmp/meowbug/fix1.png+fix_b2_after.png
2026-08-31 15:42:24 +08:00
MeowOS 5fbf30755c feat(amsd): meow_amsd 活动管理器一期 + am CLI (agent-212, 用户定案) — svcd托管(trigger=boot); 生命周期注册表(状态/时长/退出码/信号/崩溃计数+历史环形); launcher launch/exit/stdout管道捕获上报(logcat式,崩溃尾巴drain不丢); am status/list/history/start/kill(root门); crash双保险转发; S89预置conf
amsd f8d7f61b / am cfc4cbd4 / launcher 97c1b222(含字库扫描签名门控修CPU100%)
宿主+qemu全链路验证通过
2026-08-31 12:45:29 +08:00