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 |
|
MeowOS
|
8e54b2c150
|
docs(repo): 公开 SDK 仓 MeowOS-SDK 拆仓说明 — README 加链接 + scripts/publish_sdk.sh(subtree split 命令 + 增量同步流程)
|
2026-09-01 21:15:35 +08:00 |
|
MeowOS
|
fcff0b0ac1
|
fw_content: M6.0 收编 meow_netmgrd/meow_net 双形态条目(8f9303b5, agent-276 期1)
|
2026-09-01 19:59:02 +08:00 |
|
MeowOS
|
cfeb9b775b
|
chore(fw_content): 待打包标注口径 M2.98→M6.0(版本定案:M3-M5 系列号被历史里程碑占用,M2.97 后跳 M6.0)
|
2026-09-01 19:48:47 +08:00 |
|
MeowOS
|
4a49901bc1
|
feat(S89): M6.0 预置 meow_netmgrd.conf + 存量热更 exec(/usr/data→/usr/bin) 迁移(同 powermgr 模式; NETMGR_DESIGN); fw_content.conf S89 行同步 f3bb197f
|
2026-09-01 19:47:44 +08:00 |
|
MeowOS
|
980d161972
|
fix(launcher/amsd): amsd MSG_AMS_START 拉起缺口——pending-start 抽 meow_ams_start 模块复用启动链 + 负错误码符修复
根因(真机日志实证,M2.92 遗留):meow_ams_pending_start_set 误返回正错误码
(-MEOW_ERR_BUSY=+8/-MEOW_ERR_INVAL=+1),ipc_dispatch 的 rc<0?-rc:MEOW_OK 把「有前台 App
拒绝/空包名非法」误判为 OK(0) → amsd 报 OK 但 pending 未置位 → App 永不拉起(am start 报 OK
但界面没出现/进程未起)。
launcher:
- 新增自包含模块 meow_ams_start.c/.h(ops 注入 launch=launch_app/launch_activity、
resolve=resolve_chain、log=logmsg):pending 状态 + 拉起决策 + picker 上下文。
- set 统一返回负 MEOW_ERR_*(根因修复);consume 复用既有启动链路真正拉起目标 App,
列表未就绪(state!=0)保留 pending 待 2s 重扫重试,不再静默丢弃。
- main_menu run_menu 改经 meow_ams_start_consume 消费(保留 launch_fail_toast/菜单收尾);
app_launcher 移除旧 g_ams_start/g_ams_pick_* 迁入模块;util meow_ipc_process 顶部同步 busy、
meow_ipc_init 末尾 meow_ams_launcher_init()。
- build_launcher.sh 编入 meow_ams_start.c;meow_launcher_internal.h 更新挂点声明。
amsd(协议层归属说明):cmd_start 的 busy 判定对照 launcher ACK 正幅度(busy=8),
原 (uint32_t)MEOW_ERR_BUSY=0xFFFFFFF8 永不匹配 → busy 落入 launcher offline,改 (uint32_t)(-MEOW_ERR_BUSY)。
验证:宿主 test_ams_start.c 33 断言全 PASS(合法->拉起链、activity chain 透传、空包名/非法/busy
不拉起不崩、列表未就绪保留 pending、无路由 NO ROUTE、启动失败 idx 回报、picker 取回);
launcher 目录全量回归 test_media/bgplay/depends/notif_panel/notif_tf/settings_brightness/
vol_ramp_jack/host_icon + test_font_tier/weight 全 PASS;mipsel -Wall -Wextra 0 warning。
新 md5:meow_launcherd a8200ae1b0aa68d7262749db87377d49、meow_amsd 7ddc677ce7938bc9b95c83c17bc78295。(M2.98 待打包,未刷机)
|
2026-09-01 19:40:29 +08:00 |
|
MeowOS
|
d4928224a5
|
feat(S89): M2.97 预置 meow_powermgr.conf + 存量热更 exec(/usr/data→/usr/bin) 迁移; fw_content.conf 同步 M2.97(launcher 899ac22c M4+depends / audiod 176c840d 电平监控+锥度 / watchdog 553840cd 锥度 / powermgr 469dddb7 新入固件 / nyai a7d24553 depends)
|
2026-09-01 19:11:42 +08:00 |
|
MeowOS
|
ed2ae10320
|
app.json 二进制依赖 depends:启动前检查(launcher)+ 安装提示(nyai)
需求(用户定案):App 复杂功能若依赖现成 Linux 二进制(板载 /usr/bin 或卡上
MeowOS/opt/bin)能效更好,声明后系统启动 App 前检查依赖是否存在。
- depends 行式声明:depends=curl,jq:optional,ffmpeg:required(无标注默认
required;也接受 :opt/:req;未知修饰符按 required 处理并 WARN;空项/超量丢弃)
- launch_app_chain 冷启动时按序查 /usr/bin/<name> 与 <卡>/MeowOS/opt/bin/<name>
(X_OK,两类命中即满足);缺 required → 不启动(toast「缺依赖: <name>」+ 日志,
沿用 CANNOT START 风格);optional 缺失 → 仅 WARN 放行;只在启动时查,不做周期复查
- nyai install 对包内 app.json depends 同查并提示(不阻断安装,缺 required 标注
「安装后启动将失败」)
- 新增 meow_dep.c(独立 TU,解析/检查/块原因),宿主测试 test_depends.c
解析矩阵 12 用例 + 假根检查路径 12 用例全 PASS;launcher/nyai mipsel 交叉
-Wall -Wextra 0 warning;launcher 现有宿主测试回归全过
- 文档:APPS.md §2.1 字段表 + docs/MEOWOS_SPEC_REF.md §5.5 同步;hello app.json
加 depends:curl:optional 示例
launcher md5 899ac22c10f596909d7f35ea685744de(fw_content.conf 已更新;/usr/bin
只读,留给主会话打包固件)
|
2026-09-01 18:28:07 +08:00 |
|
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 |
|
MeowOS
|
250c9ae8b1
|
feat(powermgr): meow_powermgr 期0调研+期1骨架——功耗管理专项服务(POWER_MANAGER_DESIGN)
期0: POWER_HW_FACTS.md 真机只读取证——battery/无current_now(实时功率=derived+estimated
双轨)、无cpufreq(省电档无降频点)、背光量程0-101(非255)、rfkill可用、axp_battery为
幻影设备、无thermal zones、audiod STATE字段完备。
期1: patch_v2/meow_powermgr/ 单二进制双形态(meow_powermgr守护+meow_power CLI):
- svcd托管 trigger=boot/restart=on-fail;HibyOS只读降级(/tmp/meow_boot_mode!=meow
只采样电池,不碰wlan0/bt/声卡,热切换)
- 权威充电链0-diff照抄svc_power(mp2731→fusb302→battery兜底)
- 电池深加工 state/cap/mV/health/续航估算(容量差分速率环 30s×240)
- 经验功耗模型(/usr/data/meow/power_model.conf 可调,内置默认全部标注待标定)
- IPC /usr/data/meow_pm.sock MSG_PM_QUERY(0x00D0)→MSG_PM_RESULT(0x00D1) JSON,
subset位;meow_ipc.h 0x00D0-0x00D7 号段回填
- CLI status/estimate/model 落地(IPC优先+直读降级),history/top/events/policy 期2/3桩
- 宿主桩测试36+1例全过(MEOW_PS_DIR等假节点)+qemu-mipsel全过+真机对照svc_power
battery口径一致(93%/4270mV);mipsel静态117KB(<200KB);-Wall -Wextra 0 warning
|
2026-09-01 16:21:12 +08:00 |
|
MeowOS
|
6a4d330a26
|
feat(audio): CS43198 音量按 DS1039 数据手册定档 — 感知平方锥度映射(dB衰减=(1-pct)²×96dB, pct=0→真静音255)四路统一; SPEC_REF 补数据手册事实(PCM_VOLUME_A/B=0x0B/0x0C,DSD独立音量); DSD 模式记入 AUDIOD_DESIGN §13 后期规划。audiod 47/47 PASS
|
2026-09-01 16:08:01 +08:00 |
|
MeowOS
|
ad9778476a
|
fix(§10.5): 通知中心叠加媒体保活——播放中 App 不 SIGSTOP(修播放中滑通知中心音乐停)
- launcher: run_app_notif_overlay 入口 meow_media_app_playing() 判定(当前源+PLAYING+app_id 匹配)
→ 不 SIGSTOP/不 SIGCONT,App 续跑保 PCM;非播放中维持 SIGSTOP 模板;关闭时 unlink 标记挪到
恢复帧上屏后(防未冻结 App 抢 present 一帧回闪)。
- SDK gfx: present() 见 /tmp/meow_notif_active(env MEOW_NOTIF_ACTIVE_FILE 覆写)自抑上屏,
仅 App 进程(系统 UI/launcher 不抑制),200ms 节流 stat,脏区累积解除后一次上屏;
meow_gfx_overlay_suppressed_count 供单测断言。
- SDK input: 叠加期排空丢弃本进程 evdev 副本 + EVIOCGKEY 位图静默对齐(防面板点击被 App
双重消费/解除后边沿误判),进入沿复位触摸状态机。
- 宿主:新 test_overlay_suppress T1-T4 + test_media §8(8 用例)全 PASS;test_notif_*/
test_sdk_*/test_vol_ramp_jack 等回归全过;zig-mipsel -Wall -Wextra 全 TU 0 warning。
- meow_launcherd fbb82036(/usr/bin 只读待固件,fw_content.conf 已更)/ meow_ui.a d6242fc2 /
hello a073535a / files 2b799d07(已热更到卡);ncm 未重链(ncm_app 他 agent 在改)。
|
2026-09-01 15:23:32 +08:00 |
|
MeowOS
|
820d1e52bf
|
fix(media): 物理播放/暂停键(164)改发 PLAYCTL cmd=6 toggle + App 前台状态栏音量%实时刷新
Bug1: SDK meow_ui_media 按 g_last_state 本地判 play/pause,但 ncm 走自有 ipc_media
线程不经 SDK meta 上报 → g_last_state 恒 0 → 恒发 cmd=1(播放),播放中按键无效。
修:SDK 164 恒发 cmd=6 toggle(删 g_last_state 判定),ncm apply_playctl case 6
按 player_manager_state() 当前态翻转(源是状态权威);launcher meow_media/util
本就透传 cmd 不动结构,仅 meow_ipc.h/SPEC_REF 注释补 6=toggle。媒体卡片/NP 页
按钮(按 launcher 侧 s->state 判,来自 META 是准的)维持现状。
Bug2: App 前台时状态栏为 launcher 叠加层,App 内 SDK 改音量/亮度只写
settings.conf+DAC,launcher meow_settings 内存表不感知 → g_sys.vol 停旧值。
修:app_overlay_statusbar 前插 app_overlay_settings_poll——1s 节流 stat
settings.conf,mtime 变才 meow_settings_init 重读+sync 缓存+g_sys.vol/brightness
(meow_settings 新增 meow_settings_file_path() 访问器防硬编码分叉)。
验证:宿主 test_sdk_input_keys 19/19(K4 改 toggle 断言)、test_media +cmd=6
透传用例 ALL PASS、ncm bench/toggle_sim 10/10(新)、player_flow/cache_evict
sim PASS、ncm core 宿主+qemu-mipsel PASS、test_settings_brightness PASS;
mipsel 交叉 -Wall -Wextra 0 warning(改动文件单独验+整构建)。
真机(0.7.91):ncm 热更(.new+mv)后 autoplay(Docu) 起播缓存曲 → meow_ipc
playctl 6 二连发 → paused(pos=139691)/resumed 日志实证 toggle 全链路。
md5:ncm 8f10eee5 / meow_ui.a 7b359ec9(gitignore)/ launcher eba4f2b2
(/usr/bin 只读,fw_content.conf 已更新待固件)。物理键 164 实体按压留用户终验。
|
2026-09-01 14:44:55 +08:00 |
|
MeowOS
|
9a4ea10c64
|
feat(audiod): DAC 实时监控 — 数字域电平表(100ms窗口整数RMS/peak,deci-dBFS)+1s监控日志(TF audio_monitor_<bootts>.log,流停即停)+CLI monitor 电平条;STATE 补 rms/peak/lvlseq 键(ABI兼容)。宿主47/47,qemu+真机0.7.91 tone验证(1kHz 0.3幅:rms=-13.9 peak=-10.8dBFS,hwrate~44.1k健康)。audiod ab193a2b meow_audio 891ab264
|
2026-09-01 14:25:51 +08:00 |
|
MeowOS
|
80bc191593
|
build: fw_content audiod 772cc3d8(静音安全修复)
|
2026-09-01 13:51:31 +08:00 |
|
MeowOS
|
109d48747f
|
fix(audio): CS43198 音量寄存器=衰减量(0最响255静音),四路(launcher/audio.c+audiod+watchdog+SDK vol)统一反转映射 dac=255-pct*255/100 — 修「0档炸50档最低」。真机 audiod 热修版实测 L/R 值方向正确
|
2026-09-01 13:34:58 +08:00 |
|
MeowOS
|
84fd0a87aa
|
fix(audiod): ALSA 几何收窄 period=1024×4(tiny_alsa惯例) — 根治长流停摆(驱动默认巨buffer致hbc3000桥周期中断稀缺wedge; tonepcm2矩阵实测60s零stall)。宿主38/38 PASS
|
2026-09-01 11:06:01 +08:00 |
|
MeowOS
|
e1e1331e44
|
fix(audiod): 长流卡死根治 — 防卡死护栏全量落地(AUDIOD_DESIGN §12)
根因(级联死锁): 内核驱动 wedge(hbc3000/cs43198 时钟域族, write/PREPARE/amixer ioctl
卡死在内核) → 播放线程永不返回 → ring 填满 → IO 线程在 ring_write 无超时 cond_wait
永久睡眠 → accept 停摆(backlog 满后 CLI ECONNREFUSED) → ncm 堵 socket 写 → 全链冻结。
同效路径: popen_read_tmo 无界 waitpid 随挂死的 amixer 子进程拖死持锁线程。
修法:
- ring 写有界等待(MEOW_AUDIO_RING_WAIT_MS 缺省 5s)超时丢弃+计数(dropped=), IO 永生;
等待期 sid 代际守卫(抢占中等待的旧流 PCM 不再注入新流 ring)
- 全部 cond 等待 timedwait 化(播放 1s 周期自愈, g_cond 改 CLOCK_MONOTONIC);
信号处理器只置 g_stop(不再调非 async-signal-safe 的 cond_signal)
- popen 收割有界: WNOHANG 300ms → SIGKILL 300ms → D 态放弃收割(泄漏换永生);
路由线程 amixer 调用不持 g_mu; QUERY 改报 g_route_cur 缓存(IO 热路径不再 popen)
- ALSA 改 O_NONBLOCK + poll(POLLOUT,1s): 连续 3 次停摆判 wedge → PREPARE 自救无效即
关卡进丢弃模式(stall=), 下一路 OPEN 重开重试
- server→client 下行帧单发 write 写不全即整帧丢弃(txdrop=), 杜绝半帧错位/慢客户端堵 IO
- 主线程 watchdog: IO/播放心跳 10s 静默告警; io 线程 poll 出错不退出(listener 不丢);
backlog 4→8; RESUME/PAUSE 补 cond 唤醒
- SDK meow_ui_audio.c + CLI: connect 非阻塞+poll 2s, SO_SNDTIMEO/RCVTIMEO 2s
(audiod 真死时 App 报错重开, 不再永久阻塞)
验证: 宿主 38/38 PASS(旧 19 回归 + 新增 T5 长流 3min 等效 31.7MB 持续灌 played==written
underrun/dropped=0 喂流中 listener 探活 15/15; T6 wedge 故障注入生存 — 旧代码同款注入
挂死(90s timeout 强制 kill), 新代码 IO/accept/preempt/SIGTERM 全活; T7 慢客户端 tx 丢弃);
qemu-mipsel 静态二进制 status/tone 全通(written=played=13230 underrun=0);
-Wall -Wextra 0 warning(host+mipsel+SDK 双端编译)。
meow_audiod md5 86a8b6793d516c90bbd12c2997b30d8f / meow_audio c23b96490842f54324b855fd9c2467a5
(fw_content.conf 已更)。暂不部署真机(主会话统一); meow_ui.a/App 重链留主会话。
|
2026-09-01 10:32:15 +08:00 |
|
MeowOS
|
104bfe2d21
|
fix(watchdog): wd_vol_save 不再 O_TRUNC 毁 settings.conf(改读改写单键+去重,与SDK同款语义) — 真机实证整文件被抹/重复行/丢max+step。test_wd_fw 17/17 PASS; 52f2dadd 已热更 /usr/data/meow_watchdog
|
2026-09-01 10:25:18 +08:00 |
|
MeowOS
|
614694ad4a
|
fix(launcher): Now Playing 死循环修复(空态不再每帧整页重画,修100%CPU/卡死) + NP页接管电源键(单击息屏/亮屏) + NP页自动息屏 + 状态栏充电闪电图标(sb_icons 新增 bolt, charging 时电量图标左邻显示)。宿主 test_sb_statusbar PASS; launcher 6de97628 待入 M2.92
|
2026-09-01 04:40:34 +08:00 |
|
MeowOS
|
4bafdb5d69
|
fix(keys): 插孔消抖 + 音量 ramp 3s 上限 + 亮度写日志 — 耳机插拔 ADC 幽灵音量键修复
真机实证(meow_20260901_034946.log): 4.4 插入瞬间电气瞬态在 jz_adc_aux(event2)
产生 VOL_UP 幽灵按住, vol_ramp 24%→上限50 (225391 ramp 起→227213 爬满,
紧随 audiod jack changed). 修(限 meow_launcherd/+meow_watchdog/):
① launcher audio.c + watchdog 各自读 /sys/class/switch/{headset,balance}/state
(节流缓存 1s/500ms, 热路径不每圈读文件), 变化后 800ms 内忽略音量键边沿
(vol_ramp_begin 不起/在爬 ramp 中止/wd_vol_adj 单步忽略)
② ramp 总时长上限 VOL_RAMP_MAX_MS=3000 兜底防一次幽灵打满(正常长按 24→50 ~1.4s 不伤)
③ write_brightness(val,src) 全 10 调用点带源+逐写 logmsg, 亮度跳上限下次可定位
(grep 全库: 写 backlight 仅 launcher/watchdog/svc_power/bootmenu, 无确定 255 路径)
宿主: 新 test_vol_ramp_jack 15/15 PASS(单击/长按回归+3s cap+消抖忽略/中止/恢复);
test_wd_fw 17/17 + test_settings_brightness + test_notif_tf PASS; MIPS -Wall -Wextra 0 warning
(顺带修 watchdog 既有 sys/poll.h→poll.h 重定向 warning).
watchdog 已热更设备 /usr/data(baa997ea); launcher 7be1d4eb 待固件. fw_content.conf 已更新.
遗留: SDK meow_ui_input.c 音量键路径需同款消抖(sdk/ 有主未动)
|
2026-09-01 04:28:10 +08:00 |
|
MeowOS
|
44d170413d
|
build: M2.91(0.7.86) fw_content — audiod a6e4c295(FPGA武装)/svc_power 39ae3aa2(充电权威链)/amsd da9a5004(注册自愈)/launcher 2aa61780(MIUIx+充电态轻刷)
|
2026-09-01 04:04:51 +08:00 |
|
MeowOS
|
ca2290e691
|
fix(amsd): 注册表扫空自愈 (agent-250) — 根因: svcd trigger=boot 拉起 amsd 时 TF 卡未挂载, 启动首扫打空挂载点且此后永不重扫 → am start 报 pkg not registered (M2.90 真机日志实证). 修: registry_scan 改合并式重扫(只刷静态字段, 运行时状态/DECLARE路由保留, 源不可达绝不清表) + 主循环自愈重扫(源未通 3s 快重试/常态 30s 合并重扫) + am rescan 手动触发 + 兼容 M2.90 固件 launcher 旧 5 段 EV LAUNCH(nt==5 无 chain, epoch 不再错当 pid). 宿主+qemu+真机全链 PASS: 空目录启动 4s 自愈出 3 App, 真机 am start dev.player.ncm→OK(真pid)→kill 全通. meow_amsd da9a5004 / am 9e323faf (fw_content.conf 已更新, 待 M2.91 入固件闭环冷启动)
|
2026-09-01 03:41:19 +08:00 |
|
MeowOS
|
f149e24f28
|
充电态权威源 mp2731-charger/status(修 battery/status 撒谎恒 Discharging)
真机实测:设备充电中但 battery/status 恒 Discharging;权威源为
mp2731-charger/status(Charging/Full),回退链 fusb302-typec-source/online==1
→ 旧逻辑 battery/status==Charging || ac/online==1。电量仍读 battery/capacity。
- meow_svc_power: battery/status 命令充电判定走权威链(MEOW_PS_DIR 可重定向供宿主自测);
svc_power_authtest 补 6 用例(mp2731 Charging/Full/Discharging + 两级回退)全 PASS
- SDK meow_ui_sys: 状态栏充电态同权威链
- launcher util.c: 抽 batt_is_charging() 公共判定;meow_sys_light 1s 轻刷补充电态(插拔实时)
- bootmenu 无充电判定(仅读 capacity)/MeowPanel 透传 power 服务:均无需改
- 真机验证(充电窗口):新二进制 battery=88%(Charging),对照固件内旧版 88%(Discharging)
- hello/files/ncm 随 meow_ui.a(af6703f2) 重链已热更到卡(.new+mv,md5 对核一致)
md5: meow_svc_power 39ae3aa2 / meow_launcherd 2aa61780 / hello 2444c151 /
files 691db88b / ncm 89da63ed(仅重链,源码未动)
|
2026-09-01 03:25:01 +08:00 |
|
MeowOS
|
942bdece78
|
build+tools: fw_content.conf 填 audiod/audio CLI md5; 新增诊断工具 sndprobe(PCM设备探测)/tonepcm2(HW_REFINE能力探测+写计时时钟验证) — 无声定位用。M2.90(0.7.85) 已打包 504bc74b 回验0diff
|
2026-08-31 22:45:43 +08:00 |
|
MeowOS
|
ade0a57353
|
A1: meow_audiod 独占音频服务(agent-244 骨架 + agent-246 真机收尾)
- meow_audiod:启动门控(/tmp/meow_boot_mode 非 meow exit 0)、IO/播放/路由三线程、
ring ~200ms、ALSA UAPI 独占直开、切率 mute-重配-恢复、抢占(后开赢+PREEMPTED)、
socket EOF 回收、xrun PREPARE 恢复;meow_route 轮询逻辑并入路由线程
- meow_audio CLI:status/tone/route/vol;services.d/audiod.conf(trigger=manual,on-fail)
- SDK meow_ui_audio.c 编进 meow_ui.a:懒连接/读线程分发 PREEMPTED 回调/EPIPE 标死/
无 audiod 返回 MEOW_ERR_NOENT 不隐式直开(MEOW_AUDIO_DIRECT=1 仅调试)
- launcher:确认 MeowOS 模式后 meow_svcd start audiod(double-fork best-effort 不阻塞)
- meow_route 退役:S89 预置换 audiod.conf + 清理旧 meow_route.conf(防拉起已删二进制
重启循环);fw_content.conf 删 meow_route、加 meow_audiod+meow_audio(md5 打包时填)
- 真机定位并修复 ALSA UAPI 两大坑(即 ncm 播放无声根因):
① hw_params 须全放行初始化(mask 全 1/interval [0,UINT_MAX]),memset 0 interval
等价只能取 0 → refine 必空 → HW_PARAMS 恒 EINVAL
② access/format mask 先清零再单点(pmask 只 OR),全 1 被 choose 成 MMAP_INTERLEAVED
→ write() 恒 EINVAL
- 附带修复:dev_write fd<0 防日志风暴丢 PCM 限频日志;SDK state 解析 app_id 截空白;
meow_ui.h 文档负错误码表述修正
- 验证:宿主 FILE sink 全 IPC 链+抢占+tone WAV 20/20,SDK 客户端 13/13;
qemu-mipsel 同过;真机 tone 44.1k/96k 切率 written=played、underrun=0、日志完整
- meow_ui.a 53a3edd2 → ncm 重链 d2031829(已热更到卡);launcher a2f932a1
|
2026-08-31 22:40:08 +08:00 |
|
MeowOS
|
4e3edd7952
|
build: fw_content.conf M2.89 — launcher 3c1bf9c0(选单抢屏回归修复)/watchdog 6373d8e5(SIGUSR1不误杀框架App)/nyai 2858c3bd(导出exec相对化)/amsd c6c2eda2(陈旧revents丢连接修复)
|
2026-08-31 19:40:30 +08:00 |
|
MeowOS
|
d394c73a7c
|
chore(build): fw_content.conf 对齐 M2.88(launcher/verify/power/amsd/am/route 全量 md5 刷新)+ S89 预置 meow_route.conf
|
2026-08-31 16:36:01 +08:00 |
|