Commit Graph
90 Commits
Author SHA1 Message Date
MeowOS 228e9e79e0 fix(launcher): App暴毙后卡死根因——execpipe 裸阻塞 read 改 poll+2s超时(agent-214) + ams_drain_stdout 64KB有界 + reap_wait兜底5处裸waitpid + watchdog关继承fd + font_sha256_file popen改有界 + 既有警告清理; fix(ncm): cookie盐不随包名(旧登录态可解)
launcher 97c1b222→333d6f53; ncm→1124dbf2; 宿主harness stall/ok/orphan全过
2026-08-31 13:36:23 +08:00
MeowOS efbd1d5a2f chore: 随 meow_font.a 流式解码重链 hello/files/ncm(hello 42ebe4ec / files b2caccbc / ncm ce25cf21) 2026-08-31 13:28:56 +08:00
MeowOS c0f7a95719 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早启动与选单共存为真机重点观察项
2026-08-31 13:28:07 +08:00
MeowOS 90e28e7b7e fix(ncm): 二维码随容器缩放(模块边长=(容器-32)/模块数,修内容长QR溢出卡片) + 夜间深灰底浅灰码 + slogan改繁体「音樂的力量」(用户定案) 2026-08-31 13:07:20 +08:00
MeowOS f20e4cddd0 refactor(ncm): 包名 os.meow.ncm→dev.player.ncm(非系统应用,不用 os.meow.* 保留前缀;卡上目录+MeowData+logs 已同步迁移,登录态保留) 2026-08-31 12:50:32 +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
MeowOS b81e7438e4 docs: 全量文档同步到 M2.83 (agent-213) — README 能力全景/框架文档消息号+M3M5落地标注/SDK listview+长按+§10.5已实现标注/APPS version_code+媒体键路由/DEVELOPMENT_PLAN 主线进度; devdocs(WORK_STATE/RECOVERY_PROMPT/DEV_NOTES)本地同步 2026-08-31 12:30:34 +08:00
MeowOS 3e414176c3 fix(launcher): 字库启动竞态两连修 — ①卡就绪(热插拔轮询)后重扫字库 presets(开机早扫时卡未挂载只剩默认项,App 大字库声明落空→豆腐块)②扫描根目录不可读且仅默认项时不写 index(修开机覆盖掉卡上18条索引)
launcher b33da20a→9ae64777; test_font_tier PASS
2026-08-31 11:12:55 +08:00
MeowOS 8964cd1750 feat(ncm): 复古UI重做 (agent-211, 按 NCM_UI_DESIGN.md) — 白红/黑红双套配色(ncm_palette+主题监听实时换肤); 主页红topbar+个人区+双页签(我创建的/我收藏的, is_collected/subscribed已补); 搜索页(cloudsearch,仅确认时发请求); 歌单详情封面头块+播放全部; 播放页黑胶唱盘(行扫圆+封面裁圆+唱针+分带刷新); 播放页tick分带刷新修整页重绘隐患
ncm→90a25cf0; 0 warning; 宿主14张双主题截图目检+core测试全过
2026-08-31 10:26:44 +08:00
MeowOS 4cec476dd9 fix(ncm): 启动卡顿+大歌单+No tracks 三连修 (agent-209) — ①home/playlist 加载改后台 worker ②大歌单 detail n=1(tracks瘦身)+响应cap 2MB ③song_detail c数组引号转义 ④P0: MIPS32 long=32位歌曲id溢出→int64 ⑤eapi批缓冲2048→4096
ncm→f6bd765a 已部署; 真机验证(风控合规): 小歌单✓ 大歌单256首✓ 启动不卡✓; 已知: 大歌单首屏~30s(二期改分页端点)
2026-08-31 09:43:35 +08:00
MeowOS a651df0e9b fix(ncm): weapi挂死根因修复 (agent-207, 6缺陷叠加) — ①超时改CLOCK_MONOTONIC(墙钟NTP回拨致poll超长阻塞) ②响应头解析隔行跳行漏Content-Length ③请求头缓冲1KB→8KB ④cookie值截断192B致MUSIC_U不完整被当游客(改ptr+len不截断+按名去重) ⑤split处NUL覆盖body首字节 ⑥Content-Length:0直接DONE; status_check硬上限6s; 803后worker线程取uid/nick落盘(修uid恒空)
ncm→bf6d2a79 已部署; 真机1次验证(风控合规): status_check 721ms rc=0 uid=408996274; user_playlist 2.5s rc=0 count=64
2026-08-31 09:00:23 +08:00
MeowOS 4ff8c8baa3 chore(build): fw_content.conf 更新到 M2.82(launcher b33da20a 等) 2026-08-31 08:47:07 +08:00
MeowOS 4ec81024da fix(ncm): 803 后先落登录态立即跳 home(status_check 真机挂死,昵称获取延后——歌单请求会独立验证 cookie) 2026-08-31 08:31:19 +08:00
MeowOS 701516db8e fix(ncm): 响应头缓冲 4KB→16KB + set-cookie 提取缓冲 1KB→4KB(真机联调:802 后网易 set-cookie 风暴溢出 ERR_FULL 致登录失败) 2026-08-31 08:22:23 +08:00
MeowOS 796d022c77 feat(ncm): unikey 失败自动 5s 退避重试(不再要求用户点重试) 2026-08-31 08:12:05 +08:00
MeowOS 4199dc77ea fix(ncm): 设备无系统 CA → App 自带 Mozilla CA bundle(cacert.pem) 显式指给 core HTTP 层;真机验证 unikey ok/QR ready(修复 rc=-5 TLS 错误) 2026-08-31 08:06:41 +08:00
MeowOS f806395dbe feat(ncm): 登录流程关键节点日志(unikey/轮询状态迁移/803落cookie/poll失败)便于真机联调 2026-08-31 08:00:57 +08:00
MeowOS 7c75bb52dd chore: 误入库宿主测试二进制 test_sdk_fixes 移出跟踪+gitignore 2026-08-31 07:54:16 +08:00
MeowOS 9b4195724c feat(sdk+launcher): SDK nav/media封装 + §10.5 App前台唤起通知中心 (agent-206) — meow_ui_nav.c(env栈初始化+report/request_exit) + meow_ui_media.c(懒连断线重连, meta上报+playctl接收) + MSG_NOTIF_OPEN=0x28/CLOSE=0x29(0x25/26已被占); SDK顶部下滑手势→IPC; launcher App前台会话叠加通知中心(SIGSTOP→读帧→接管输入→恢复SIGCONT, 面板内App崩溃即关); hello接线验证
meow_ui.a→9a8eb7ef; hello→fc299577; launcher→b33da20a; 宿主5套件+新test_notif_open+qemu分发 全过
出入: SDK符号用meow_ui_前缀防与launcher内同名冲突; 叠加会话真机待验; §10.5文档旧号段已过时
2026-08-31 07:53:57 +08:00
MeowOS 21519ce2e4 feat(ncm): 网易云客户端 v1 UI+播放链路 (agent-205) — os.meow.ncm: 登录页(真实unikey二维码+轮询状态机)/我的歌单(listview)/歌单详情/播放页(封面+seek+滚动歌词+竖横屏切换)/设置(音质默认Hi-res+缓存上限默认10G); 播放线程(缓存LRU+minimp3→ALSA UAPI直开hw:0,0); 媒体会话MSG_META上报+PLAYCTL接收(首真实媒体源)
ncm 1e331964 (text 764KB); 0 warning; 宿主离屏6页截图目检+真实QR可扫+qemu-mipsel干净启动+解码446xRT
真机待联调: ALSA时序/803扫码闭环/媒体会话联动/gbk大字库渲染
2026-08-31 07:24:59 +08:00
MeowOS 32543ac616 feat(launcher): 媒体会话+Now Playing (agent-204) — MSG_META(0x72)/MSG_PLAYCTL(0x73)+meow_media.c(最近活跃源=active_seq净序,30s超时回收); 通知中心顶部媒体卡片(封面缓存+进度seek+控制键); 主界面中部/右缘左滑进 Now Playing 大页(封面+元数据+进度+控制+歌词占位), 左缘返回; 空态完备
launcher a42171a1→ddfe616e; 宿主 test_media ALL PASS + qemu 端到端(META注册→PLAYCTL下发闭环)
出入: 卡片以媒体会话为权威非通知; PLAYCTL 走会话fd(断连防御留后续)
2026-08-31 06:51:04 +08:00
MeowOS 8012948b26 feat(ncm): 网易云核心库 core/ (agent-203) — ncm_http(mbedtls TLS1.2+chunked+流式限幅)/ncm_crypto(eapi/weapi/linuxapi, RSA raw逐字节验证)/ncm_login(unikey→二维码→轮询状态机→cookie加密落盘)/ncm_api(歌单/详情/播放地址Hi-res逐档降级/歌词)/ncm_cache(LRU 默认10G)/ncm_store(deviceId持久化+机器密钥)
宿主+qemu-mipsel 全链路 PASS(unikey实拿/801轮询/eapi往返/RSA对拍/缓存LRU); -Wall -Wextra 自有代码0warning
待联调: 803真扫码、真机 hw:0,0 播放链路
2026-08-31 06:41:23 +08:00
MeowOS 85b4aea24f feat(launcher): M3导航栈+M5通知点击跳转 (agent-202) — nav_stack(≤16深)+MSG_NAV REPORT/EXIT+launch_activity链路注入(MEOW_ACTIVITY/MEOW_CHAIN)+栈根退出回主屏; 通知点击按route_status(0拉起/1 NO ROUTE/2 SOURCE NOT FOUND/-1 NONE关面板不动作); picker协议位预留(0x0070/0x0071); 裸App兼容
launcher 4fe4103a→a42171a1; qemu实测 declare/query/nav report/exit/notify+querynotif 全过
发现: §10.5 App前台通知中心叠加会话(MSG_NOTIF_OPEN)实际未实现,文档超前,待补
2026-08-31 06:27:10 +08:00
MeowOS 955dbe1228 feat(launcher): 主界面 MD3 化双布局 (agent-201, 用户定案) — 卡片宫格(2列223x112圆角16+按压态)/大图标列表双布局, ui.home_layout=card|list 设置切换; app.json icon 加载缓存+首字母占位; 图片背景 cover 居中裁剪+明暗叠加层(display.bg_overlay_alpha 默认128,预渲染快照不每帧缩放); 全 MD3 语义色零硬编码; 标题接 font.size.title
launcher 3c7c2ec7→4fe4103a; mipsel 0 warning; 宿主纯逻辑测试(几何/cover/首字母/截断) ALL PASS; 真机待验观感
2026-08-31 06:05:33 +08:00
MeowOS c96e912518 feat(ncm): 网易云技术栈预研+构建验证 (agent-200) — 选型: mbedtls3.6.2裁剪(TLS+AES+MD5+RSA raw+Base64,~388KB)/jsmn(2.2KB)/qrcodegen(10.8KB)/minimp3(37.4KB), 合计~438KB; HTTPS unikey 全链路宿主+qemu-mipsel 实测通过; RSA raw 与 Python pow 逐字节一致; MP3 解码非瓶颈
vendor源码+out产物不入库(126MB, gitignore; 版本/许可/裁剪见 VENDOR_NOTES.md, build_*.sh 可复现)
2026-08-31 06:03:36 +08:00
MeowOS 2d93298f8a feat(launcher): 通知查询/清除 IPC + App崩溃直报crash (agent-199) — MSG_NOTIFY_QUERY(0x25)/QUERY_RESULT(0x27)/DISMISS_ALL(0x26,保留媒体/进度/常驻红线), DISMISS(0x22)复用既有; 序列化在主循环单写者做; launch_app waitpid 回收处 notify_app_crash(信号杀/非0退出上报 /tmp/meow_crash.sock best-effort, 干净exit不报)
launcher 61f6b0db→3c7c2ec7; qemu IPC 往返+宿主存储单测+mock crash socket 全过; 顺带清理既有告警(util.c/app_launcher.c/meow_ipc.c)
2026-08-31 05:46:46 +08:00
MeowOS 29e1b35da8 fix(sdk): App 退出日志兜底 — meow_ui_init 安装 SIGTERM/SIGINT 处理器(log_sig_exit: 直写 exit:sigterm 绕过缓冲+exit(0));修 watchdog 返回键杀 App 时日志只有 start 没有 exit 的问题;App 自装处理器(hello BYE)覆盖不受影响 + meow_ui.h 旧日志路径注释更正
meow_ui.a→049fa9db; hello→d0ac55cf; files→3b3bea05; launcher→4f223701; 宿主 widgets PASS
2026-08-31 05:30:04 +08:00
MeowOS feb3df681c feat(meowpanel): 可选密码鉴权 (agent-196, 用户定案) — panel.auth_enabled(默认0)+panel.auth_pass(带盐sha256不明文); token会话(/dev/urandom,TTL12h,内存+卡持久化,静态屏蔽session文件); 未启用零回归,启用后 /api/* 全要会话; 前端登录页+401回跳+设置卡片; 顺带修 settings_write_one 容忍等号两侧空格(原会重复追加行)
meowpanel→f91856a4; 0 warning; 宿主curl 20例+headless Chromium 全过
2026-08-31 05:25:28 +08:00
MeowOS 5f7e7542bd feat(log): App日志目录扁平化为 MeowOS/logs/<包名>/ (agent-198, 用户定案) — launcher MEOW_LOG_DIR 注入改 logs/<appid>+mkdir_p; SDK meow_ui_log.c 去 apps/ 嵌套; 卡可用时一次性迁移 logs/apps/* 并入新路径; APPS.md/APP_LOG_MANAGER.md 同步
launcher→61f6b0db; files→ac2c2781; 编译0warning(新增代码)
2026-08-31 05:24:43 +08:00
MeowOS 32a6a8ed1e feat(sdk): 绘制期通用clip + view递归/on_event接线 (agent-195) — ①栈式clip rect(g_clip_stack[16]), 所有写像素原语过clip, meow_widget_draw push/pop控件矩形(含W_CUSTOM, 根治越界脏区), IME/模态顶层全屏不受影响 ②view enter/leave递归children + meow_view_dispatch_event(z降序子>父命中即消费); hello App层显式驱动退役
meow_ui.a→da4d3a7d; hello→c655ba43; 宿主4套件全PASS(含clip越界断言+view递归断言)
出入: W_SLIDER拇指在max处被裁(既有几何瑕疵可见化,待修); on_draw祖先已进入即画
2026-08-31 05:24:43 +08:00
MeowOS b2e7cc8c70 fix(mdns): 启动竞态+运行期接口重检 (agent-194) — 无可用IPv4不再exit(2)改内部2s等待重试(SIGTERM可打断); 5s周期检测掉线/换IP→重新join组播+A记录实时刷新(修IP变更还带旧地址); 接口down时零应答守卫; MEOW_MDNS_IF 落地
meow_mdns b23de7ce→d6b0151b (+3.5KB); mipsel -Wall -Wextra 0 warning; 宿主netns实测等待/换IP/掉线守卫全过
注: 真机源码在 mips-repo/bins/meow_mdns/(非patch_v2); fw_content.conf 的 md5 行打包时更新
2026-08-31 05:16:18 +08:00
MeowOS 3fd4726198 feat(launcher): 字体扫描迁移三级目录 (agent-193) — <family>/<weight>/<tier>/ 支持(两级向后兼容); FONT_PRESETS_MAX 17→64; 设置页 family→weight 两级不变,同weight多tier按加载大字库开关选档(关=common优先/开=gbk优先); index 落盘含三级条目
launcher ab8e610f→d3cae88b; test_font_tier/test_font_weight PASS
已知缺口: SDK meow_font.c MEOW_FONT_INDEX_MAX=32 截断(>32套需同步提); S_NET_MAX=8 family 上限; default 字体仍两级
2026-08-31 05:09:42 +08:00
MeowOS 6603e6686c chore: 误入库的宿主测试二进制 test_p1p2p3_repro 移出跟踪 + gitignore 2026-08-31 05:04:41 +08:00
MeowOS e95552b949 feat(sdk): 通用长按事件 (agent-191, 用户定案) — MEOW_EV_LONG_PRESS 坐标式事件+meow_ui_set_long_press_cb/ms(opt-in,默认500ms,移动>12px取消,长按后抬手抑制TAP/SWIPE); 按钮按住视觉阈值同源; files 长按从App层迁入 SDK
meow_ui.a 4335c33a→6de89c27; hello→72fb20da; files→b1c4f58f
宿主 widgets(含6条长按断言)/p1p2p3/ime_fix/test_fsx 全 PASS; 未改 meow_ui_events 结构(防 -Wmissing-field-initializers 破坏既有App)
2026-08-31 05:04:26 +08:00
MeowOS 60072a08f1 feat(pkg): version_code 安卓式版本规则落地 (agent-190, 用户定案 APPS §3.8) — app.json 增 version_code(纯数字唯一比较依据), version 仅显示; nyai install/upgrade/list-upgradable/index 全走 code 比较(缺 code 拒装); launcher meow_pkg_install 同步门禁; 旧点分比较函数移除
nyai f2938d28→4cf5f690; launcher 24c9ee5d→ab8e610f; 宿主 9 场景全过(升/同版/降级拒/缺code拒/index/upgrade一致)
出入: 全新安装缺 code 放行(门禁仅 replacing 分支); export 保留签名的版本比对仍用显示版字符串(nyai+launcher 一致,待后续统一)
2026-08-31 04:56:24 +08:00
MeowOS 555c4a458e feat(svc_power): 读级命令鉴权放宽到任意调用者 (agent-189, 用户定案) — STATUS/BATTERY/REBOOT_REASON/UPGRADE_STATUS/dac status 读级不再查 uid;动作级维持 os.meow.*/系统身份;authtest +16 断言 ALL PASS。svc_power e0494eb7→c6ddf3f8 2026-08-31 04:55:49 +08:00
MeowOS c8ffdfbad9 fix(meowpanel): 文件列表排序——目录优先+名称不区分大小写(原 readdir 原始顺序混杂);条目上限 1024 防巨目录爆内存;设备实测生效 2026-08-31 04:55:02 +08:00
MeowOS f7e45f472e feat(font): gen_font.py 支持 tier/languages/label/--json-name (agent-188, 思源黑体7字重10套已产出入卡) + APPS.md §3.7 音频通路实测定案(MeowOS常驻模式声卡空闲App直开hw:0,0) + §3.8 版本号规则(version_code 安卓式) 2026-08-31 04:39:35 +08:00
MeowOS cf86cbd387 feat(crash): meow_crash 系统级崩溃捕获 (agent-187) — svcd 服务异常退出上报(AF_UNIX best-effort,不崩svcd)+dmesg增量扫segfault/oops; 落盘 TF MeowOS/logs/crash_<bootts>.log 无卡回退/tmp+迁移; CLI dump/tail; S89 预置 crash.conf(主会话补)
meow_crash 62781084; meow_svcd da6ebc66→605646c4(仅+68行上报挂点); 宿主5场景全过(上报链路/dmesg增量/无卡迁移/铁律验证/CLI)
2026-08-31 04:39:34 +08:00
MeowOS 243148e440 feat(sdk): 结构化列表控件 W_LISTVIEW (agent-186) — MEOW_APP_SDK §5.5 A②落地: 图标(内置folder/file符号或img)+标题+副标题+右侧操作(arrow/switch/check/more), 单选/多选/禁态, 行右1/3操作区命中, 视口裁剪, 全语义色; meow_ui_img_scaled 弱引用防二进制膨胀; files App 自绘列表完整迁移(长按留App层)
meow_ui.a ece0ecdb→4335c33a; hello 07b1ee37→07c0c5a5; files 6f6b0a6d→22b6b606
宿主: widgets(含4条listview新断言)/p1p2p3/ime_fix/test_fsx 全 PASS
2026-08-31 04:39:34 +08:00
MeowOS 3f57d7fd4f feat(sec): 二期签名鉴权 2A 最小闭环 (agent-185) — meow_verify(Ed25519验签CLI,公钥固化,TweetNaCl+SHA256单文件) + meow_sign(宿主keygen/sign,尾部180B footer签名块,私钥仅.keys/不入库) + nyai/meow_pkg_install 验签分级(有签必验/os.meow.*无签拒装/第三方直装告警/三重绑定/原签存.mpk.src导出保留) + svc_power IPC鉴权(SO_PEERCRED→/proc/pid/exe→包名/系统身份allowlist,系统动作仅os.meow.*或系统身份) + cmd_upgrade同步签名分级防绕过
meow_verify 37e50606; nyai f2938d28; svc_power e0494eb7; launcher 24c9ee5d(含热重载)
宿主验证12项全过(正例/篡负载/篡包名/无签系统包拒/第三方直装/降级拒/导出round-trip byte-identical/verify缺失宁缺勿装/footer容忍/E2E PERM/鉴权分类)
出入: TweetNaCl替orlp/ed25519(任务允许同等实现); 读级暂仍uid==0(用户随后定案放宽到任意调用者,待改); 系统身份allowlist为启发式
2026-08-31 04:33:46 +08:00
MeowOS f50abae02a feat(launcher): 应用列表热重载 — 2s 轮询比对 MeowAPPs 目录签名(自身+各应用目录 mtime FNV 混合),变化即重扫刷新;常驻主界面推新包约 2s 内出现,不再需重启 2026-08-31 04:14:00 +08:00
MeowOS 563a9be1d6 feat(meowpanel): 通知中心+文件管理后端补全 (agent-182) — /api/notifications(读TF归档,环形200条)+单删+dismiss_all(保留媒体/进度活动通知); 文件域修4bug(normalize_path丢前导/致白名单必失败、upload multipart 文件名截断恒NULL、rename拼错路径恒ENOTDIR、read>1MB改truncated) + 上传8MB上限+文件名净化+双重白名单防逃逸
meowpanel 8108852f→58a7b186; mipsel/host -Wall -Wextra 0 warning; 宿主 curl 自测全过
需launcher配合项(已记录): MSG_NOTIFY_QUERY 查询帧 + dismiss 广播 IPC
2026-08-31 04:14:00 +08:00
MeowOS c187b7bce3 feat(files): 新增外置系统文件管理器 os.meow.files (agent-183) — 目录浏览(虚拟化列表/空态)+文本预览(≤256KB截断)+删除/重命名/新建/属性(BottomSheet+IME);路径写操作限 TF 卡内(拒 .. 越界);多文件结构(app.c+ui/{browser,viewer}.c+ui/common/chrome.c+logic/fsx.c) 按批次②范本
files md5 6f6b0a6d; 0 warning; 宿主 test_fsx 全过(路径安全/格式化/排序/虚拟化/写操作/文本嗅探); qemu 离屏冒烟通过
SDK 缺口记录: listview 仅单行 label(本 App 用 custom 画布自绘行); common 档字库中文缺字(未声明 fonts:full)
真机待验证: 列表渲染/滚动手感/IME 重命名/弹窗交互
2026-08-31 04:03:56 +08:00
MeowOS b5038f8673 refactor(hello): 视图框架批次③ — 目录嵌套(ui/home/home.c, ui/demo/demo.c+ui/demo/list/list.c) + 视图深度化(demo列表区抽 CONTAINER 子视图, 子>父命中) + on_draw 链路实测通过(list标题改由子视图 on_draw 经注册表绘制) + g_ds.prog 上收 logic/state.c (agent-181)
hello c06b3b4f→07b1ee37; mipsel -Wall -Wextra 0 warning; 宿主 P1c/P2/P3 + widgets 全 PASS
SDK 后续项(本批 App 层显式驱动适配, 未动 SDK): view enter/leave 不递归 children + on_event 路由未接线 — 待 SDK 侧补
2026-08-31 04:00:15 +08:00
MeowOS 7a1c78c5de feat(nyai): 更新规范+导出过滤 — 防降级安装(version点分比较,新版<已装拒装/缺失拒装,先解 staging 再替换) + 导出两层模式(黑名单 find+tar -T 排除 *.pre_*/.bak_*/logs//*.log/.DS_Store 且去 ./ 前缀 / 白名单 export_files 逐项安全校验) + 导出体检(app.json合法+exec存在可执行) + install/upgrade 成功后自清 .bak_<pid> + os.meow.* 签名提示与 2A 验签挂点注释 (agent-180)
nyai e5514929→新值见 fw_content.conf; 宿主 17/17 场景全过(首装/升/同版/降级拒/无版本拒/黑白名单/体检/round-trip); cmd_upgrade 同步加防降级门禁(堵绕过)
出入: 版本严格解析(1.2.3-beta 判不可比拒装, 与定案一致); busybox tar --exclude 未真机验证→用 find|tar -T 兜底
2026-08-31 03:54:38 +08:00
MeowOS f2786552d5 feat(launcher): 蓝牙/WiFi 独立子页面(安卓风)— 新增 subpage.c 统一脚手架(顶栏+分组列表+跟手滚动+左缘返回) + wifi_page.c(开关/当前连接详情/已保存/附近,BSSID去重+中文SSID) + bt_page.c(开关/已连接/已配对/附近扫描配对);SMENU 网络组收敛为 2 入口行 (agent-178)
launcher bd37c8b0→d10c0e8a; 改动文件 -Wall -Wextra 0 warning; 真机待验证: 蓝牙 pair/connect、开关联动、触摸几何
出入: 中文SSID/BSSID去重复用 net.c 既有实现; 模态复用 s_dd_modal(SDK 模态层未上收, 未改 SDK); s_net_open 旧分支留作死代码未删
2026-08-31 03:41:51 +08:00
MeowOS 366bf6bb5d fix(meowpanel): nyai 路径改固件内置 /usr/bin/nyai 优先+卡上旧路径回退(nyai_bin())— 修 /api/apps/*/export 500(nyai 已进固件,卡上 opt/bin 已清) 2026-08-31 03:31:09 +08:00
MeowOS 1d2496b38c refactor(hello): 视图框架批次② — hello.c 拆分为 app.c+ui/{home,full,demo}.c+ui/common/chrome.c+logic/{notify,state}.c(定案B: demo视图态留ui/;定案b: page导航包装activity栈);test_p1p2p3_repro 改多文件链接形态 (agent-177)
hello f45ba051→c06b3b4f; mipsel -Wall -Wextra 0 warning; 宿主 P1c/P2/P3+widgets 全 PASS
出入(诚实): view on_draw/on_event 路径暂未启用(注册表直绘已覆盖, on_draw 双画风险), 留批③实测; home/full 仍手绘未迁注册表
2026-08-31 03:31:09 +08:00
MeowOS 896f391fee fix(perf+sdk/ime): ①perf net_json 缺 network 对象闭合括号 → 全量 JSON 根对象不闭合/非法(MeowPanel /api/system jv_parse 失败根因,真机+python 双重证实)②IME flush 挂起(meow_gfx_flush_hold): 阻塞循环整周期只记脏、IME画完一次原子上屏,根治 on_tick 进度条与键盘同区两刷频闪 ③TextField on_change 只标脏不重画→改 meow_ui_invalidate 真重画,输入实时回显
meow_svc_perf fa073bf9→7ea196de; meow_ui.a d814d0ed→ece0ecdb; hello 2ce09466→f45ba051; launcher 9ca4c5e8→bd37c8b0(重链)
宿主验证: test_ime_fix/test_p1p2p3_repro/test_meow_ui_widgets 全 PASS; perf_host all 输出经 python json 校验合法
2026-08-31 03:11:35 +08:00
MeowOS 08c70aa14c feat(sdk/view): 视图框架批次① — z序绘制物注册表(meow_ui_draw.c: 自动注册+auto_z(深度*步长+层内seq)+set_z(999)置顶+MEOW_Z_AUTO_MAX=127) + meow_view骨架(meow_ui_view.c/.h: 嵌套容器+六生命周期+page_push/pop/replace包装activity栈+sub_push/pop预留桩) + 收敛live_btn走invalidate + hello迁移(d_paint_region/d_redraw删除→meow_ui_invalidate, chrome set_z(999), demo文本注册CUSTOM z=128) (agent-176, 定案见SDK_VIEW_FRAMEWORK_DESIGN.md §E①)
meow_ui.a d814d0ed→7e20f10e; hello 0a1c96a5→2ce09466
宿主验证: test_p1p2p3_repro P1c/P2/P3 ALL PASS; test_meow_ui_widgets ALL PASS 无回归; mipsel -Wall -Wextra 0 warning
2026-08-31 02:38:32 +08:00
MeowOS fbc412e96a chore: 入库宿主测试二进制 meow_svcd_host/meowpanel_host(此前 agent 产物未跟踪) 2026-08-31 02:38:32 +08:00
MeowOS 8b7640d11a fix(perf): 补提交 365cf0f 漏提交的重建二进制 meow_svc_perf(fa073bf9)+host(5f02b858) — 源码已在 365cf0f,二进制当时漏 add 2026-08-31 02:38:15 +08:00
MeowOS 2d7fe81229 fix(sdk/ime): IME 修复(shift小写基/OK只提交不关/阻塞喂on_tick agent-169) + dialog INPUT回归(dlg_ime_change_cb实时回写+适配新语义 agent-173) + test_sdk_fixes shift断言更新 + 宿主测试test_ime_fix 2026-08-31 02:01:56 +08:00
MeowOS c515a33ac4 docs(repo): 仓库公开文档同步到 M2.73/0.7.68 + 修 fw_content.conf 过期 md5(meow_svcd da6ebc66/meow_svc_perf fa073bf9, 否则打包 md5 强校验失败中止) (agent-171) 2026-08-31 01:41:11 +08:00
MeowOS ae51fe9f70 feat(meowpanel): MeowPanel 后端(HTTP/JSON单进程, 内嵌静态托管, 对接meow_svc_perf/power IPC, 设置镜像, 文件/应用/按键注入) + 前端(蓝牙栏) + 服务配置 + README (agent-164/165) 2026-08-31 01:29:44 +08:00
MeowOS fc0ed4938f fix(sdk/hello): P1 z-order重叠(FAB被下层动态控件抹掉,d_redraw→d_paint_region按z栈重画重叠区) + P2 list焦点(命中非list区域释放焦点滚页面) + P3 list脏区(W_LIST裁剪视口,标题栏/底部无残留) (agent-166) 2026-08-31 01:27:01 +08:00
MeowOS 4cf8e1e6ca fix(svcd): remove_svc_idx memmove 左移后 argv[] 同源悬垂 — 对移动区间每槽 svc_rebuild_argv 重定位(agent-167 诚实的同类bug, 一并根治) 2026-08-31 01:14:44 +08:00
MeowOS 408b165ba3 fix(svcd): load_conf 用局部tmp, *s=tmp 后 argv[] 指针悬垂指向已销毁栈帧(tmp.exec/argbuf)导致 /proc/pid/cmdline 错乱 — 抽 svc_rebuild_argv 重建 argv[] 指向 s 自身成员 (agent-167) 2026-08-31 01:14:12 +08:00
MeowOS 365cf0f1c0 feat(svc_perf): network 采集并入 perf 聚合 — 真实 WiFi(wpa_cli/ip) + 蓝牙(hci0/sysfs) + hostname_local, SYSTEM 子集输出, /api/perf 保持轻量 (agent-165) 2026-08-31 01:06:30 +08:00
MeowOS c9a1d0e6af docs(build): 新增 scripts/build/README.md 固件打包脚本使用说明(用法/配置格式/产物归档/踩坑/最小打包步骤) 2026-08-31 00:33:17 +08:00
MeowOS 85760dbeb3 docs(build): fw_content.conf 注释修正 — /etc/shutdown_logo.jpeg(图片,框架拷) 与 S95shutdown_logo(init脚本,清单项) 区分 2026-08-31 00:32:03 +08:00
MeowOS 6df14a44b6 build: 通用打包脚本优化 — 产物归档 fw_apps/out/(fw_apps/build/分离防互清) + fw_content.conf 升级 M2.73 权威清单(补svc_power/svc_perf+刷新md5) + 删过时独立脚本build_fw_apps_m267.sh 2026-08-31 00:31:06 +08:00
MeowOS cc3c39ff2f chore: 补入 test_sb_collapse.c(agent-146 全屏状态栏收合宿主测, 此前漏入库) + docs 字体档位定案锚点(→FONT_SYSTEM.md) 2026-08-31 00:19:49 +08:00
MeowOS b8c36bd33c fix(sdk/hello): M2.71控件真机bug批次 — 圆形进度脏区+整环修复/Slider拖动/Dialog·Sheet背景快照scrim不叠黑/Disabled圆角α/点击重置息屏/滑动跟手/IME残影·键位·主题配色/List选中点击 (agent-162) 2026-08-31 00:19:40 +08:00
MeowOS b12404a986 feat(svc_power): 升级写保护(卡根r3proii.upt存在+非空+可读+size>0, 失败不写mtd5/不重启) + dac status读板载audio.volume真实0-100(弃amixer dummy) (agent-163) 2026-08-31 00:18:50 +08:00
MeowOS 07e621e03b docs: MEOW_APP_SDK §6.1 命中顺序补"模态层=命中首层+scrim外区拦截消费"(根治穿透)
- 命中顺序从顶往下: +0当前模态(scrim)层(命中modal项=处理, 命中scrim外区=关闭modal且消费不放行) → ③系统全局→②App全局→①当前Activity页面控件
- 模态层由SDK命中分发统一保证(meow_ui_input/meow_widget_hit): 任何模态(Dialog/Sheet/设置弹窗/电源菜单/通知中心)自动点外关闭+不穿透; 各界面不得各自局部补丁
- 此前设置页排空/防抖为局部实现, 未上收; 本条目为根治(统一模态层拦截)
2026-08-30 23:57:55 +08:00
MeowOS 9f19f2887e feat(hello): 控件库demo演示页(agent-159) — M2.71 Material组件展示+交互
- home加「WIDGETS DEMO」入口 + ACT_DEMO activity; demo控件启动push一次创建(owner=ACT_DEMO, 命中只owner==active, home/demo零重建)
- 覆盖: Button五型+禁用/Switch/Slider/TextField(阻塞IME)/Checkbox/Radio(互斥)/ProgressBar(线圆动画)/Card(嵌子按钮)/Divider/Badge(3)/TabBar/NavigationBar/TopAppBar(返回箭头)/Dialog+BottomSheet/FAB/LazyColumn(100项)
- 交互真实控件状态机; 配色全取meow_theme(随MD3/MIUIx+明暗); 局部刷d_redraw(矩形)+meow_ui_flush_region不整屏不冲状态栏; 原home逻辑逐字未改
- 交叉编译0warning; hello=803b23fb meow_ui.a=92e61fb8(未变未碰SDK); 宿主离屏PPM目检3帧渲染正确
- 遗留真机观感; 滑动=按scroll重建内容控件(SDK无位置setter, 方案§0记录修正)
2026-08-30 23:28:50 +08:00
MeowOS 23727cf400 feat(system): 系统框架一期 — 专项服务(性能/电源)+IPC+电源CLI+电菜单改经服务(agent-155)
- meow_svc_power: 单一二进制(svcd空参IPC常驻 /usr/data/meow_power.sock + root CLI免鉴权), 12命令(shutdown/reboot强制=0/upgrade/set-default-hiby/reboot--hiby + set-default-meow/status/screen/dac(status仅)/battery/reboot-reason/upgrade-status); 动作同源sys_do_reboot/set_boot_default_hiby/mtd5=ota:kernel2; dac on/off无控制点不支持
- meow_svc_perf: IPC(/usr/data/meow_perf.sock MSG_PERF_*) + CLI, 聚合/proc/df/thermal/version/uname JSON(与MEOWPANEL_PROTOCOL对齐)
- power_menu.c 改经 meow_power_action(launcher先转储再IPC), 删sys_do_reboot/set_boot_default_hiby; 4动作+8s强关+confirm_reboot_player+3处长按强关全经服务; launcher内 sys_do_reboot/bootmode.sh/set_boot_default_hiby 0调用
- meow_ipc.h 仅加 MSG_PERF_QUERY/RESULT(0x50/51)+MSG_POWER_ACTION/STATUS(0x60/61)+POWER_*(12)+m_perf/power_t; 未动既有
- S89meow_svcd 预置 meow_svc_perf/power.conf(trigger=boot); 各独立socket
- IPC鉴权一期=SO_PEERCRED uid==0基础(完整os.meow.*二期); 通知转储=launcher先转储再IPC(二期补launcher→服务通道); 失败安全(服务不可达→按取消,不静默不直连)
- meow_svc_power=32d6be92/meow_svc_perf=7b0f3b64/launcher=d90f09e9/svcd=fb2d608b(未动)/meow_ui.a=92e61fb8(未改); 全0warning; 备份power_menu.c.pre-svc.bak回退
2026-08-30 23:16:12 +08:00
MeowOS 898bc176c9 docs: 仓库侧公开文档更新到 M2.71/0.7.66 + 系统框架(agent-157)
- README: 版本0.7.66; 系统组件/进程模型(meow_sysui+专项子服务)/launcher源码拆分+状态栏统一/SDK控件库(第一批通用基座+第二批Material)/§2.9系统框架+§2.10 MeowPanel/配置驱动打包/.mpk=tar.gz/文档索引/mtd5 ota:kernel2
- SPEC_REF: §3.4 SDK统一控件库+主题增强/§4专项子服务(perf/power+电源CLI全命令+二期os.meow鉴权/.mpk签名)/§5.1状态栏统一/§5.4版本0.7.66
- APPS: §1.3系统动作经专项服务(不直连sys_do_reboot/mtd5, 走meow_svc_power)/附录.o mpk包名os.meow.*约定+系统APP鉴权规划
- FRAMEWORK_DESIGN: §10.1专项子服务锚点+launcher源码拆分说明
- MEOW_APP_SDK: §5.8/§8.1 标注已实现(第一/二批+主题接口), 保留miui→miuix待定案/物理键焦点导航草案
- 无敏感(无密钥/密码/设备IP/监听地址); 未碰devdocs/一期代码/agent-155文件
2026-08-30 23:01:59 +08:00
MeowOS dcba5975a2 feat(sdk): meow_config_* App配置读写API(agent-158)
- 6 API: meow_config_dir/set/get/int/bool/remove; 落 TF MeowData/<pkg>/data/<key>.cfg(env MEOW_DATA_DIR, 回退/tmp/meowcfg_<pid>)
- 与系统设置 meow_settings_*(板载settings.conf) 区分; key清洗[A-Za-z0-9._-]→_ 防路径穿越; 值上限4096; 降级不崩(pthread_once/mutex)
- MEOW_CFG_* 错误码(避开 meow_ipc.h 枚举命名空间, 防宏展开冲突); 数值与 MEOWOS_API/meow_settings.h 同值
- meow_ui.a=92e61fb8(新增config成员) hello=5e31d919不变(0回归, 静态链未拉入新成员); build_sdk 0warning; 宿主test_meow_ui_config ALL PASS
- 未重链launcher(launcher未用config); 遗留真机验证MEOW_DATA_DIR落盘/无卡降级
2026-08-30 23:01:31 +08:00
MeowOS 9c733fcf73 feat(sdk): 控件库第二批 Material 子集(agent-152)
- 新增控件: Button五型(filled/tonal/outlined/text/elevated)/TextField(接IME: round外框idle-outline/focused-primary+占位+光标)/Card/Divider/Badge/Checkbox/Radio/ProgressBar(线圆, value=-1不定)/FAB/TopAppBar(标题+‹返回+动作)/NavigationBar(TabBar pageSwitcher)+TabBar(下划线)/LazyColumn/LazyRow(虚拟化+scroll clamp)
- Dialog(B③同构阻塞模态)/BottomSheet(B④), meow_ui_dialog.c
- meow_gfx 新增 fill_circle/line/ring_arc(无-lm, COS90象限查表)
- 结构体尾缀(对外opaque/calloc归零), 旧字段与create签名零破坏; meow_widget 类型扩到W_TEXTFIELD..W_FAB(17种)
- meow_ui.a=18c21da5 hello=5e31d919 launcher=4952261d(重编重链无回归); build_sdk 0warning; 宿主 test_meow_ui_widgets 全PASS+test_sb_collapse PASS+PPM目检正确
- 与 §5.8/§5.2-5.7 一致; 遗留真机观感/性能
2026-08-30 22:33:51 +08:00
MeowOS 2cb6a7c16f feat(sdk): 控件库第一批通用基座(agent-150) + launcher/hello 重链
- meow_widget 基座收敛(尾部追加 Options+状态机位+自定义回调+布局子项), W_CUSTOM/W_LAYOUT/W_SPACER
- meow_theme 尾部追加 MD3 语义色+风格参数(旧字段 bg/fg/accent/dim 映射兼容), g_theme[2][2](style×mode×明暗), display.background 背景源深浅成对, 图片路径回退
- meow_widget_opts(Modifier式, 不改create签名)/MEOW_WS_*状态机(enabled阻断hit,pressed)/meow_widget_custom_create(render/hit_cb)/meow_row/column/box+arrange(算绝对坐标兼容)
- meow_ui_set_style/style/meow_theme_get 完整主题(MD3默认/MIUIx占位)
- meow_ui.a=29c5078d hello=24116e6b(向后兼容外观零变化) launcher重链=626546f9;build_sdk 0warning; 宿主 test_sdk_controls T1-T10 PASS + test_sb_statusbar ALL PASS
- 未做(第二批/后续): Material子集/实时按压刷新扩展/物理键焦点移动运行时(留草案)
2026-08-30 21:57:46 +08:00
MeowOS e6f0b665e3 refactor(launcher): 拆分 meow_launcherd.c(9778行)→meow_launcherd/ 多文件(agent-149)
- 14 模块 .c + meow_launcher_internal.h(642): util/font_theme/fb_compositor/settings_page/power_menu/notif_center/app_launcher/main_menu/audio/backlight/net/keys/about/statusbar; meow_launcherd.c 已删
- 按行逐字搬移(0-diff), 118函数提升非static+47组extern(内部头), #if0退役区不编入(源码留.pre_split.bak)
- 关于本机小改: 作者 AskaEth/17 + info/item[13]防越界 + s_dd_modal 超高滚动(clamp/触摸滚动/音量键跟随/裁剪, 仅超高启用)
- build_launcher.sh 编译列表→模块; 文档/注释引用 meow_launcherd.c→模块/目录
- 编译0warning/-Wall -Wextra告警集与原文一致(77条无新增)/qemu-mipsel冒烟一致(--scan/--sysdump); launcher=c0799357(505KB; md5因多文件重编译与原文异,非回归依据)
- 备份 meow_launcherd.c.pre_split.bak/meow_launcherd.pre_split.bak; M2.69(0.7.64)已推卡并用户验证OK
2026-08-30 21:38:30 +08:00
MeowOS 1481ae00c4 fix(statusbar): 全屏状态栏收合 — 上移出屏+停渲染+热区28保留+左缘指示条屏顶(agent-146)
- 根因: launcher/App 双进程各持SDK态, hello运行时全屏(set_fullscreen+set_collapsed)只改App进程, launcher仍expanded→画28px+时序闪
- SDK render_off(yoff): 顶条内容整体上移+裁顶, 收合 statusbar_collapsed_render 只画4px提示线(无时钟/图标/值)
- 热区保留: meow_ui_statusbar_hotzone() 收合时返回28(渲染与热区事件分离)→收合仍可下滑
- 左缘指示条: meow_ui_swipe_hint y=statusbar_height()=4 平移屏顶
- 模式感知: /tmp/meowapp_sbar(App进程SDK写0展开/1收合/2隐藏, launcher读); launch_app循环新变立即叠(消半秒闪)+过渡期~20ms高频刷(动画平滑)
- meow_ui.a=ed0267a9 launcher=7ea80408 hello=1a3ff13e 0warning; 宿主 test_sb_collapse/test_sb_statusbar ALL PASS
- 遗留: 全屏上收观感/收合下App前台打开通知中心归④M3(meow_ui_sys_notif_pull桩)
2026-08-30 20:18:13 +08:00
MeowOS 03962fffac fix(statusbar): present() 尊重 inset — App进程不写顶条28px区, 根治进App顶条黑1s(agent-145)
- 根因: App首帧 present() 全屏拷贝 meow_ui_gfx.c:739 把顶条区写成黑(g_back_buf新缓冲顶条行未初始化)→覆盖launcher叠画顶条; 下次叠加~1s后→黑1s
- 修: SDK present() 真实fb拷贝加 sb_clip 截断(App进程 !meow_ui_sys_render_enabled() 不写 ins 区[0,statusbar_height)); launcher(sb_clip=0)行为不变
- hello 零改动(SDK通用覆盖所有App); launcher立即预画(:9132)+1s刷新 结果不再被冲掉
- meow_ui.a=900205ea launcher=97b73cbf hello=91da9ab0 0warning; 宿主 test_sb_statusbar/test_sb_clamp ALL PASS
- ②App内下拉通知中心: 评估确认属 ④App内通知中心(M3)完整专项(launch_app不读触摸/输入移交竞态/SIGSTOP会话/不调meow_ipc_process), 未冒风险落固件, 标注M3
2026-08-30 19:54:48 +08:00
MeowOS f8cfa9a54a build: 配置驱动通用打包脚本(agent-144) — 允许入库
- scripts/build/build_fw_apps.sh: 通用配置驱动 (-c 配置路径可多套调试配置/-v 版本/-o 输出/-b 基线)
- scripts/build/fw_content.conf: 固件内容清单 src|dst|md5|desc (md5配置化可空/强校验), 基线=M2.67(13条)
- build_fw_apps_m267.sh: M2.67 基线脚本(历史逐版 m2xx 保留工作区勿入库)
- 验证: 内容级0 diff(解包rootfs树) ✓; 多配置独立性/md5强校验/空md5跳过/S99→S84/外围CI移除 全过
- 注: .upt容器md5不可复现(repack.sh用mksquashfs+mkisofs内嵌时间戳) — 内容级0 diff为准
2026-08-30 19:49:00 +08:00
MeowOS 7300fc0a13 状态栏正确闭环(agent-142): 系统进程统一渲染+App不画+覆盖叠加+数据唯一+MD3图标式+主题换图标
- meow_ui_sys_set_system_mode: launcher置1才渲染, App默认0→不画状态栏; app_overlay_statusbar在launch_app循环~1s叠加28px顶条(不SIGSTOP App)
- 数据源唯一(launcher g_sys→meow_ui_sys_feed; wifi_level/batt/vol/bri/clock), 根治"launcher有亮度App没有"
- 右侧=MD3图标+变量值(statusbar_right_str文本退役→图标簇, 复用sb_icons.h/MEOW_SB_ICON_*/meow_gfx_blit_icon); 颜色随meow_theme
- ui.style换图标集(meow_ui_style/set_style读ui.style md3/miuix, MIUIx暂MD3占位)
- hello最小改动(redraw非全屏只清inset=28之下, 不冲系统顶条); 开放点: App不SIGSTOP/inset28/MIUIx占位/set_statusbar系统模式门
- meow_ui.a=3da5af7b launcher=a2b1c096 hello=67075741 0warning; 宿主test_sb_statusbar ALL PASS + render PPM目检(左时钟右亮度/WiFi/蓝牙/音量/电量)
- 遗留: 真机验证(无双画/数据一致/顶条叠加/inset/ui.style); 运行时fullscreen沉浸叠画待M3; MIUIx图标占位
2026-08-30 19:32:40 +08:00
MeowOS 2a6c4e97c5 系统基建线(agent-139): svcd subreaper加固 + meow_sysui总监 + 启动链
- svcd: 审计确认现网已子进程化(fork+execv+setpgid+waitpid+SIGCHLD+set_cloexec,无system()); 增量 prctl(PR_SET_CHILD_SUBREAPER) 代收孤儿孙进程 → fb2d608b
- meow_sysui(新增): 系统进程总监, 仿svcd成熟模式(信号自管道/poll/双探测kill/waitpid/subreaper/状态机), 监护自己fork+exec进程, 按sysui.d/<name>.conf逐条拉起, 无级联/有限次兜底/主循环绝不exit/空配置空转 → 173013cc
- 启动链 S70meow_sysui → S89meow_svcd → S90meow_bootmenu; svcd拉起权判归(sysui在→交监管,不在→回退现网重挂循环)
- 宿主集成测试过(常崩/稳定隔离/无级联/subreaper收尸/端到端); meow_ui.a未动
- 需加到固件打包(build_fw_apps_m267.sh): sysui→/usr/bin/meow_sysui, svcd覆盖(fb2d608b), S70+S89; 校验 svcd 762e84d0→fb2d608b, 新增 sysui 173013cc
2026-08-30 19:07:47 +08:00
MeowOS c4e648be0e docs: 状态栏正确闭环 + 主题增强 §8.1 设计定案(agent-140/138)
- FRAMEWORK_DESIGN §10.2: 同一个状态栏=系统进程(launcher)统一渲染+App前台覆盖叠加(复用fb)+App进程不渲染(§6.1③)+数据源唯一→显示一致
- MEOW_APP_SDK §3.1: SDK全局状态栏仅系统进程渲染; 右侧=MD3图标+变量值(复用sb_icons.h/SB_I_*)+顶级主题(ui.style)切换换图标集; 文本式statusbar_right_str退役/图标化
- §8.1 主题增强: ui.style(MD3/MIUIx)×display.theme(dark/light)定义配色/背景; display.background=style×mode下选项集+全局源+深浅成对; meow_ui_set_style/theme_get 接口; 两套风格参数; 状态栏图标随ui.style换集
- SYSTEM_SETTINGS: 三键语义(style/theme/background)更新
- 开放点(App前台SIGSTOP/App inset/MIUIx图标占位/meow_ui_set_statusbar公开性) 标"实现期定"
2026-08-30 19:06:46 +08:00
MeowOS a6877bbd75 docs: MEOW_APP_SDK §5.8 控件层架构升级 — 统一控件+扩展接口+通用化(agent-137)
- §5.8.1 统一控件架构: meow_widget_custom_create(render/hit回调), 标准=内置实现/自定义=回调同构, App魔改三处
- §5.8.2 Modifier式Options: meow_widget_opts + set_opts (不改既有create签名, 向后兼容)
- §5.8.3 统一状态机: enabled/selected/focused/pressed + 物理键整页焦点导航
- §5.8.4 MD3语义色板: meow_theme 尾部追加(旧字段映射兼容), 日/夜
- §5.8.5 可组合布局: Row/Column/Box+Spacer(算成绝对坐标, 与绝对定位兼容)
- §5.8.6 Material子集15项(后续批次); §5.8.7 取舍(不照搬Compose); §5.8.8 分批(第一批通用基座→第二批Material)
- 与 §6.1(owner命中)/§8(旧字段兼容)/§5现有控件(create零改动) 一致
2026-08-30 18:45:50 +08:00
MeowOS a31a004afe 启动器SDK改造 阶段一: 状态栏收敛单一SDK全局(agent-136)
- launcher meow_ui_set_statusbar(1) 启用SDK全局状态栏; 旧自绘(draw_statusbar/sb_redraw等)#if0退役(保留回退)
- 新增 SDK meow_ui_sys_feed(): launcher 喂 batt/charging/wifi/bt/vol/brightness 进SDK快照+置force+标脏顶条(0,0,xres,28)→present只重画顶条
- meow_ui_theme_reload(): SDK状态栏跟手launcher换肤; meow_sys_state 增 brightness
- 主界面/设置页/电源菜单/通知中心 顶部28px 由SDK全局状态栏统一绘制; 与App同实现/同主题/同日·夜
- ⚠️ 状态栏由MD3图标式→SDK文本式(HH:MM:SS …81% WIFI 蓝牙 VOL 亮度) — 用户拍板"用SDK的"既定结果; 图标MD3化属后续
- meow_ui.a=110c820a(仅新增符号,向后兼容) launcher=d4f108dd hello=12f48840(重编确认App不破坏); 0warning
- devdocs/plan/LAUNCHER_SDK_REWRITE.md 方案先行
2026-08-30 18:42:59 +08:00
MeowOS 815cc8cd19 chore: manifest.md 设备IP改为占位(敏感抽象, 实际见本地敏感配置) 2026-08-30 17:57:20 +08:00
MeowOS 7ab6c0015a docs: 文档对齐 M2.65(0.7.60) — 通知中心 ⑧⑨ + 版本/过时修正(agent-134/135)
- README §2.6 通知中心: ⑤⑥⑦⑧⑨ 全部(5chip含电源菜单/勿扰notify.dnd/行左滑/一键清除保留活动+转储/面板跟手下拉); 版本 0.7.60/M2.65
- SPEC_REF §5.3: 补 ⑧(一键清除, 红线保留ongoing/媒体/进度条, 先转储再清显示) ⑨(跟手下拉半程可回, 与行左滑/滚动/左缘互斥)
- APPS §4.6: 版本单点=/etc/meowos_version(M2.47起), MEOWOS_VERSION 宏仅占位兜底
2026-08-30 17:57:00 +08:00
MeowOS dafe31784d 通知中心 ⑧⑨: 一键清除(保留活动通知) + 面板跟手下拉半程可回(agent-133)
- ⑧ 一键清除: mnp_clearable(ongoing/media/progress) 红线保留活动通知; 先 meow_notif 转储(notifications.log+10MB滚动) 再清空显示; 勿扰左半+清除右半(NCP_DND_SPLIT_X=fb_xres/2)对称, 命中互斥
- ⑨ 面板跟手下拉/半程可回: reveal 连续映射 1:1 跟手(mnp_drag_progress/reveal), 松手 mnp_drag_anchor(fix,40%)=1→补到1024/0→回0收回; 与⑦行左滑/列表滚动/meow_edge_back 互斥; 复用快照+局部刷(panel帧/新露出条)
- meow_ui.a 零改动(d249c6e6); launcher=b140e9e5; 宿主189项ok; 新增0warn
- NOTIFICATION_SYSTEM §9 增 ⑧⑨; MEOW_APP_SDK §5.7 收合动画落点标注
2026-08-30 17:45:15 +08:00
MeowOS 82b77d64b4 通知中心 ⑥⑦: 电源菜单chip + 勿扰面板内开关 + 单条左滑删除(agent-132)
- ⑥ 快捷行 5chip: WiFi/蓝牙/亮度/主题/电源菜单; 电源菜单chip点击=唤起 show_power_menu(真弹) + after_modal 还原
- 勿扰=面板内开关(notify.dnd bool, 零旁路), ncp_draw_list 按 urgency>=2 过滤; NCP_LIST_TOP 308
- ⑦ 单条通知行左滑删除: 跟手(mnp_swipe_clamp)+半程可回(未过阈值回弹), 过阈值滑出删除(mnp_swipe_delete/step)
- 手势区分: 行内左滑=删该条, 竖向=滚动, meow_edge_back(左缘<24) 优先; 局部刷该行带
- meow_ui.a 零改动(d249c6e6); launcher=115e2b1d; 宿主147断言PASS; 新增0warn
- SYSTEM_SETTINGS §1 加 notify.dnd; NOTIFICATION_SYSTEM §9 增 ⑥/⑦ 定案
2026-08-30 17:23:04 +08:00
MeowOS a8ec8377ed 通知中心增强(agent-126/127/128/130) + App内通知中心方案(agent-129)
- 开关平移动画(时间轴180ms可打断/快照memcpy/顶28不盖状态栏) agent-126
- 音量/亮度滑条复用设置页方案(跳步+上限clamp+写DAC去抖/状态栏带仅redraw_sb清绘) agent-127
- 通知列表滚动(方向随input.swipe_invert, 滚动≠关闭, 回弹才关) agent-128
- 去音量chip(静音↔恢复last_nz, NCP_CHIP_N 5→4: WiFi/蓝牙/主题/亮度) agent-130
- meow_ui.a 零改动(d249c6e6); launcher md5 c7893faf; 宿主 90+/0warn
- ④App前台划出通知中心方案: FRAMEWORK_DESIGN §10.5 + NOTIFICATION_SYSTEM §9 + MEOW_APP_SDK §6.1(M3跨进程: SDK全局状态栏下滑唤出+半程可回+点通知拉app)
2026-08-30 17:01:47 +08:00
MeowOS 2b17f69f24 阶段B 通知中心UI(agent-123) + 进程模型/文档完整(agent-124) + 对外README(agent-125)
- 通知中心=launcher侧系统级叠加层(§6.1③ 仅内部): meow_notif_panel.h(纯逻辑) + meow_launcherd.c(内联 draw/run_notif_center + run_menu顶部热区下滑接入) + test_notif_panel.c(56单测)
- 通知中心零旁路走 meow_settings_*; 通知列表读 meow_notif; 左缘返回复用 meow_edge_back; 局部脏区; 系统级控件无公共API(App无法自建悬浮层)
- meow_ui.a 零改动(d249c6e6); meow_launcherd=4652901a(0warn)
- FRAMEWORK_DESIGN §10 进程模型/Supervisor树(svcd服务子进程化隔离防级联崩) ; MEOW_APP_SDK §6.1 系统UI归launcher+SDK/APP进程隔离; NOTIFICATION_SYSTEM §9 归属; SYSTEM_SETTINGS/SPEC_REF/DEVELOPMENT_PLAN 补齐
- README 重写为面向第三方(进度/架构/构建/部署/SDK开发; 固件打包标注本地工具不入库, 无敏感)
- 遗留: SDK(App进程)侧通知中心/activity跳转 依赖 M3 导航栈(独立里程碑); 真机待验证
2026-08-30 15:59:23 +08:00
MeowOS b6fe812251 fix(boot.default): 设置默认系统同步启动菜单权威文件 /data/meow_boot_default
- meow_settings_save() 落库 boot.default 时同步写 /data/meow_boot_default
  (meow=0/默认MeowOS, hiby=1/默认HiByOS; 与 bootmenu set_boot_default_meow / set_boot_default_hiby 同文件同语义)
- init 读入不触发 save, 不反向覆盖权威文件; O_TRUNC 幂等
- launcher 重编 cebded23; M2.61 固件 md5 fe57f361(0.7.56) 含此修复
2026-08-30 15:39:41 +08:00
MeowOS 6824defdf9 M2.60→M2.61 骨架: SDK Activity 栈 + 控件归属(agent-122) + 按钮去圈/即时重绘(agent-119) + SDK 模板文档(agent-121)
- SDK §6.1 三层控件模型: Activity栈(push/pop/active) + 页面控件归属 owner + meow_ui_global_* 骨架(②) + 系统级仅内部接口(③)
- meow_widget 加 owner; live_btn_hit/meow_widget_hit 仅 active activity 命中; touch_refresh stale 保护
- 根治"全屏页触摸主页按钮闪现"(跨页面控件残留); 控件对象复用弹栈不重建
- hello 迁移双 Activity(home/full): 全屏左滑=弹栈回主页, 根左滑=退出
- agent-119 按钮去圈(纯色accent+黑12/24%)+即时局部重绘保留; agent-121 SDK模板§5.3-5.7
2026-08-30 15:27:10 +08:00