Commit Graph
15 Commits
Author SHA1 Message Date
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
MeowOS 4ff8c8baa3 chore(build): fw_content.conf 更新到 M2.82(launcher b33da20a 等) 2026-08-31 08:47:07 +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 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 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