docs: 文档一致性整理 (agent-265) — 对齐 M2.91-96/0.7.86-0.7.91 + 261/262/264

- README: 版本头 M2.90→M2.96;M2.91-96 批次( audiod FPGA 开机武装根治 PCM 死锁 / 充电权威链 mp2731 / amsd 注册自愈 / NP 死循环修复+充电闪电 / 插孔消抖三路 / 长流护栏+几何 period=1024×4 / wd_vol_save 毁设置修复 / 音量反转四路统一 dac=255-pct*255/100 / 炸耳修复 dac_vol_mute=255 );流媒体客户端三期续(254 滑窗/256 封面缓冲 UX/260 FLAC dr_flac/262 播放键 toggle);已知问题 PCM 挂死条目移除(已根治)
- MEOW_APP_SDK §5.9: 后续批次全量(FPGA 武装/长流护栏+几何/音量反转+炸耳修复/261 电平监控 rms/peak+monitor CLI, ABI 兼容);IME 节后注拼音 IME 已落地
- FRAMEWORK_DESIGN: 头部里程碑 M2.15-M2.96;附录 B PLAYCTL 补 cmd=6 toggle
- SPEC_REF: §4 audiod 条目补 M2.91-97 加固批;音频硬件事实补衰减量语义+端口 5=audiod 强制重烧约定;现行版本 0.7.91(261 待 M2.97);252 面板 /api/audio+字体页;OPEN_QUESTIONS 待定批更新(PCM 挂死已清结)
- SYSTEM_SETTINGS: audio.volume 衰减量注记 + 音量存盘读改写单键纪律
- KEY_CONTROL §9: SDK 插孔消抖已落地(56c569f) + 音量反转/存盘修复 + 262 播放键 cmd=6 toggle
- APPS §3.7: audiod 加固批摘要 + 262 toggle
- DEVELOPMENT_PLAN: 头部截至 M2.96
- 口径: 入库文档应用名统一中性表述「流媒体客户端(dev.player.ncm)」
This commit is contained in:
MeowOS committed 2026-09-01 15:41:33 +08:00
1 parent ad9778476a
commit ab4dfb4f9c
8 files changed
+39 -32

No files matched your search

+6 -5
View File
@@ -3,7 +3,7 @@
> 把 HiBy R3 Pro II 便携播放器(君正 X1600,MIPS32r2 / mipsel / musl 静态软浮点,480×720,无 GPU 软渲染)变成一个可扩展的「第二系统 + 应用框架」。
> MeowOS 与官方 HibyOS 共存于同一台设备:开机由引导选单二选一;启动后 MeowOS 作为主控层,提供自己的桌面 UI、应用框架、服务管理与系统组件。
>
> 版本:**M2.90(0.7.85)**(M2.69→M2.90 全链路自刷验收:控件库/主界面 MD3 双布局/M3 导航栈/M5 通知跳转/媒体会话/Now Playing/SDK nav+media 封装/字库启动竞态修复**/M2.84-88**:installed 图标修复+残帧pan加固/物理键EVIOCGKEY双源/签名鉴权 2B/meow_route 音频路由/amsd 二期(picker 契约)/网易云二期(封面·歌词后台·大歌单分页)/MeowPanel 实时画面+遥控+通知实时化/中文拼音 IME**/M2.89**:开机选单抢屏回归修复+watchdog SIGUSR1 不误杀框架 App+amsd 失联修复+顶部下滑手势分流**/M2.90**:**meow_audiod 独占音频守护**(AUDIOD_DESIGN,meow_route 并入退役)+MIUIx 顶级主题+网易云文案中文化+面板字体库 tar.gz 导入导出)。版本号单点 = 板上 `/etc/meowos_version`,见「构建」。本仓库是一个**自带 SDK、包管理、媒体会话、独占音频服务、网页面板、网易云客户端的完整第三方系统**。
> 版本:**M2.96(0.7.91)**(M2.69→M2.96 全链路自刷验收:控件库/主界面 MD3 双布局/M3 导航栈/M5 通知跳转/媒体会话/Now Playing/SDK nav+media 封装/字库启动竞态修复**/M2.84-88**:installed 图标修复+残帧pan加固/物理键EVIOCGKEY双源/签名鉴权 2B/meow_route 音频路由/amsd 二期(picker 契约)/流媒体客户端二期(封面·歌词后台·大歌单分页)/MeowPanel 实时画面+遥控+通知实时化/中文拼音 IME**/M2.89**:开机选单抢屏回归修复+watchdog SIGUSR1 不误杀框架 App+amsd 失联修复+顶部下滑手势分流**/M2.90**:**meow_audiod 独占音频守护**(AUDIOD_DESIGN,meow_route 并入退役)+MIUIx 顶级主题+流媒体客户端文案中文化+面板字体库 tar.gz 导入导出**/M2.91-96**:audiod 开机武装 hbc3000 FPGA(根治 PCM 启动内核死锁)+svc_power 充电态权威链(mp2731)+amsd 注册自愈(`am rescan`)/Now Playing 死循环修复+状态栏充电闪电+插孔消抖(三路)/audiod 长流护栏+ALSA 几何收窄 period=1024×4(根治长流停摆)+watchdog 音量存盘毁设置修复/音量反转四路统一(CS43198 寄存器=衰减量,`dac=255-pct*255/100`)+炸耳安全修复(dac_vol_mute 写 255 真静音))。版本号单点 = 板上 `/etc/meowos_version`,见「构建」。本仓库是一个**自带 SDK、包管理、媒体会话、独占音频服务、网页面板、流媒体客户端的完整第三方系统**。
>
> 许可证:Apache-2.0(见 [`LICENSE`](LICENSE))。本仓库为非官方第三方项目。
@@ -17,7 +17,7 @@
- **应用框架**:一套 C 应用 SDK(`meow_ui`),第三方 App 用统一控件 / 输入 / 主题 / 字体 / 通知 API 开发,无需自读帧缓冲、自读输入、自管返回——把每个 App 都要踩一遍的坑收口到框架里。
- **系统组件**:状态栏、通知中心、电源菜单、全局左缘返回手势、主界面(应用列表,**MD3/MIUIx 顶级主题×明暗**,卡片宫格/列表双布局)、设置页、服务管理器、mDNS 广播;系统进程总监 `meow_sysui`;专项子服务 `meow_svc_perf`(性能/系统只读聚合,含真实 network)与 `meow_svc_power`(关机/重启/升级/回 HiBy,含升级写保护 + dac 真实音量 + 读级鉴权放宽);**独占音频守护 `meow_audiod`**(M2.90:App 经 SDK `meow_audio_*` 喂 PCM,守护独占 `hw:0,0`——DAC 原生率跟随无 SRC、格式归一、4.4/3.5 路由自动跟随插孔、抢占+EOF 回收、CLI status/tone/route/vol,规范 `devdocs/plan/AUDIOD_DESIGN.md`);系统级崩溃捕获 `meow_crash` + App 崩溃直报;.mpk **Ed25519 签名验签** `meow_verify`(见 §2.9);MeowPanel 外部管理面板(HTTP/JSON 后端 + Web 前端,支持可选密码鉴权 + 字体库 tar.gz 导入导出,见 §2.10)。
- **媒体会话 / Now Playing**:`MSG_META`/`MSG_PLAYCTL`(0x72/0x73)媒体会话(最近活跃源,30s 超时回收)+ 通知中心**媒体卡片** + 主界面左滑 **Now Playing 大页**;媒体键路由到最近活跃媒体会话。
- **应用生态**:**网易云 dev.player.ncm**(`core/`:mbedtls+jsmn+qrcodegen+minimp3 ≈438KB;v1 复古 UI:登录二维码/我创建的·我收藏的双页签/搜索/歌单详情/黑胶播放页/设置,登录 803 已通;二期:专辑封面/歌词后台加载/大歌单分页;**三期**:歌单真分页(取消 256 截断)/真实专辑封面/歌词锁修复/搜索接拼音 IME 中文搜索/设置页(音质 5 档+缓存上限+清理缓存)/缓存 LRU 淘汰接生产路径/文案全中文)。**A2 起音频输出走 `meow_audiod`**(SINK_AUDIOD 默认后端,SDK `meow_audio_*` 客户端,被抢占回调→暂停;旧 ALSA 直开仅 `MEOW_AUDIO_DIRECT=1` 调试)。⚠️ **已知问题(2026-09-01,调查中)**:M2.90 设备一播 PCM 即内核硬挂死(hbc3000 驱动第二次 start 不可重入死锁,官方播放器对照序列已抓到、正查 `/dev/sa-config` 控制通道),底稿 `devdocs/plan/AUDIO_HANG_INVESTIGATION.md`;外置**系统文件管理器 os.meow.files**;`meow_ui` SDK 配套结构化列表 `W_LISTVIEW`、通用长按、SDK nav/media 封装、视图框架(可嵌套 view + 事件路由 + 绘制期 clip);App 通知查询/清除 IPC(0x25-27)与**点击通知跳转路由**(route_status)。
- **应用生态**:**流媒体客户端 dev.player.ncm**(`core/`:mbedtls+jsmn+qrcodegen+minimp3 ≈438KB;复古 UI:登录二维码/我创建的·我收藏的双页签/搜索/歌单详情/黑胶播放页/设置,登录 803 已通;二期:专辑封面/歌词后台加载/大歌单分页;三期:歌单真分页/真实专辑封面/歌词锁修复/搜索接拼音 IME 中文搜索/设置页(音质 5 档+缓存上限+清理缓存)/缓存 LRU 淘汰接生产路径/文案全中文;三期续:歌曲对象瘦身 1324B→608B+256 首滑动窗口(任意长度歌单)/封面与缓冲 UX 修复(消除 worker 忙等 100% CPU)/FLAC 无损(dr_flac)+缓存键=歌曲 ID+音质档位/物理播放键 toggle 全链路)。**A2 起音频输出走 `meow_audiod`**(SINK_AUDIOD 默认后端,SDK `meow_audio_*` 客户端,被抢占回调→暂停;旧 ALSA 直开仅 `MEOW_AUDIO_DIRECT=1` 调试);外置**系统文件管理器 os.meow.files**;`meow_ui` SDK 配套结构化列表 `W_LISTVIEW`、通用长按、SDK nav/media 封装、视图框架(可嵌套 view + 事件路由 + 绘制期 clip);App 通知查询/清除 IPC(0x25-27)与**点击通知跳转路由**(route_status)。
- **进程隔离**:系统 UI 渲染进程与 App 进程相互独立,App 卡死不会冻结整个 UI。
- **包管理**:`nyai`(固件内置 `/usr/bin/nyai`)支持 .mpk 安装/升级/导出/列表/索引,走 **version_code 安卓式版本规则**(缺 code 拒装、防降级)+ 签名分级(有签必验、`os.meow.*` 无签拒装、第三方直装告警)+ 导出过滤与体检。
@@ -107,8 +107,9 @@ init (rcS)
- **M2.73 控件库修复(`meow_ui.a` md5 `e8341975`,见 `MEOW_APP_SDK.md` §5.8)**:`W_LIST`(含 LazyColumn/LazyRow)**视口裁剪**——滚动时只绘制落在视口内的行/分隔线/文本,杜绝「行滚出视口把内容画到视口外并标脏上屏」导致的标题栏/底部脏区(SDK 全局生效,非 App 侧)。IME(`meow_ui_ime.c`):键盘区背景快照/恢复(无残影)、配色走主题、shift 大小写、阻塞 `meow_ui_text_input` 喂 `on_tick`(避免进度条卡死)、OK(回车)= 提交并关闭 / ESC = 取消并关闭、回显条=实时输入回显(非候选/联想,候选框留中文输入法)。渲染:局部刷新不再清底重画单个控件(改 z 栈重画),消除重叠区残留。
- **M2.76+ 新增**:`W_LISTVIEW` **结构化列表控件**(§5.5 A②落地:图标/标题/副标题/右侧操作 arrow·switch·check·more、单选/多选/禁态、行右 1/3 操作区命中、视口裁剪、全语义色);**通用长按事件** `MEOW_EV_LONG_PRESS`(坐标式 + `meow_ui_set_long_press_cb/ms` opt-in,默认 500ms,移动>12px 取消、长按后抬手抑制 TAP/SWIPE);**视图框架**(`meow_ui_view.c`:可嵌套容器 + 六生命周期 + `page_push/pop/replace` 包装 activity 栈 + 广播注册表 z 序 + `meow_view_dispatch_event` z 降序子>父命中即消费 + **绘制期通用 clip**`g_clip_stack[16]` 根除越界脏区);**SDK 级 z 序已并入视图框架**(自动注册 + 子>父 + `set_z(999)` 置顶 + 收敛 live_btn),hello App 层 `d_paint_region` 临时方案退役。
- **M2.82 新增**:SDK **nav/media 封装**——`meow_ui_nav.c`(env 栈初始化 + report/request_exit)、`meow_ui_media.c`(懒连断线重连,meta 上报 + playctl 接收);SDK 顶部下滑手势→IPC 请求 launcher 展开通知中心(§10.5,App 进程不渲染系统 UI)。
- **M2.84-88 新增**:**amsd 活动管理器**(一期 agent-212 生命周期注册表+`am` CLI,二期 agent-225 路由决策化+**picker 契约** `MSG_PICKER_CALL/RESULT 0x70/71` + `MSG_AMS_START/KILL`);**签名鉴权 2B**(agent-221 多公钥数组 + v2 签名块);**meow_route 音频输出路由**自动跟随插孔(agent-220);**中文拼音 IME**(agent-229 `meow_pinyin.c` 静态表 403 音节+329 词,组合条+候选栏+翻页+中英切换+九键数字盘);**App 内物理音量/媒体键**(agent-226 EVIOCGKEY 位图轮询+120ms 去重);**开机亮度 stop100 竞态**(agent-230);**网易云二期**(agent-222 专辑封面/歌词后台/大歌单分页)+ 歌单详情回退(agent-227);**MeowPanel 阶段 C**(agent-224 实时画面 `/api/screen.jpeg` + 遥控 `/api/input/tap`)+ 通知实时化+屏幕增量帧(agent-234)。
- **M2.89/90 新增**:**开机选单抢屏回归修复**(sysui S70 早拉 launcher 误入主屏→改怠速等 mode 文件,HibyOS 选单/热键链路恢复);**watchdog SIGUSR1 仅裸沉浸 App** + SDK sigusr1 护栏(修框架 App 误杀);**amsd 失联三修**(陈旧 revents 丢连接/收发超时/自动重连);**MIUIx 顶级主题**(ui.style 一键切换,暖底橙调大圆角);**meow_audiod 独占音频守护**(A1 全量,含 SDK 客户端与 `meow_audio` CLI;meow_route 并入退役);**MeowPanel 字体库 tar.gz 导入/导出** + 文件管理自然排序;**网易云**:搜索接拼音 IME、设置页(音质/缓存上限/清理缓存)、缓存 LRU 淘汰接线、文案全中文。
- **M2.84-88 新增**:**amsd 活动管理器**(一期 agent-212 生命周期注册表+`am` CLI,二期 agent-225 路由决策化+**picker 契约** `MSG_PICKER_CALL/RESULT 0x70/71` + `MSG_AMS_START/KILL`);**签名鉴权 2B**(agent-221 多公钥数组 + v2 签名块);**meow_route 音频输出路由**自动跟随插孔(agent-220);**中文拼音 IME**(agent-229 `meow_pinyin.c` 静态表 403 音节+329 词,组合条+候选栏+翻页+中英切换+九键数字盘);**App 内物理音量/媒体键**(agent-226 EVIOCGKEY 位图轮询+120ms 去重);**开机亮度 stop100 竞态**(agent-230);**流媒体客户端二期**(agent-222 专辑封面/歌词后台/大歌单分页)+ 歌单详情回退(agent-227);**MeowPanel 阶段 C**(agent-224 实时画面 `/api/screen.jpeg` + 遥控 `/api/input/tap`)+ 通知实时化+屏幕增量帧(agent-234)。
- **M2.89/90 新增**:**开机选单抢屏回归修复**(sysui S70 早拉 launcher 误入主屏→改怠速等 mode 文件,HibyOS 选单/热键链路恢复);**watchdog SIGUSR1 仅裸沉浸 App** + SDK sigusr1 护栏(修框架 App 误杀);**amsd 失联三修**(陈旧 revents 丢连接/收发超时/自动重连);**MIUIx 顶级主题**(ui.style 一键切换,暖底橙调大圆角);**meow_audiod 独占音频守护**(A1 全量,含 SDK 客户端与 `meow_audio` CLI;meow_route 并入退役);**MeowPanel 字体库 tar.gz 导入/导出** + 文件管理自然排序;**流媒体客户端**:搜索接拼音 IME、设置页(音质/缓存上限/清理缓存)、缓存 LRU 淘汰接线、文案全中文。
- **M2.91-96 新增**:**audiod 开机武装 hbc3000 FPGA**(路由线程启动无条件写 Output Port Switch,根治「未烧 FPGA 时 PCM 第二次 start 内核死锁」);**svc_power 充电态权威链**(mp2731-charger/status,修 battery/status 恒 Discharging)+ 状态栏充电闪电图标;**amsd 注册自愈**(开机早于卡挂载扫空→3s 快重试+30s 合并重扫+`am rescan`);**Now Playing 死循环修复**(空态 100% CPU/卡死)+ NP 页电源键/自动息屏;**插孔消抖**(4.4/3.5 插拔 ADC 幽灵音量键:launcher/watchdog/SDK 三路 800ms 消抖窗 + ramp 3s 上限);**audiod 长流护栏 + 几何收窄 period=1024×4**(根治长流 ~12s 停摆:ring 有界等待/timedwait/popen 有界收割/O_NONBLOCK+poll 写/wedge 自救/心跳 watchdog);**watchdog `wd_vol_save` O_TRUNC 毁 settings.conf 修复**(读改写单键+去重);**音量反转四路统一**(CS43198 音量寄存器=衰减量:0 最响/255 静音,launcher/audiod/watchdog/SDK 统一 `dac=255-pct*255/100`);**炸耳安全修复**(`dac_vol_mute` 旧写 0=最大响度 → 改 255 真静音);**SDK 插孔消抖补齐**(meow_ui.a 12cdd5d7)+ **物理播放/暂停键(164) 改发 PLAYCTL cmd=6 toggle** + App 前台状态栏音量%实时刷新。
- **M2.80-83 已落地**:M3 导航栈+M5 通知跳转(M2.80)、媒体会话+Now Playing(M2.81)、SDK nav/media 封装(M2.82)、字库启动竞态修复(M2.83)。
- 既有 `meow_btn/slider/switch/list_create` 签名一字不改(向后兼容),Options/状态机走新增挂载器。
@@ -188,7 +189,7 @@ init (rcS)
- `meow_launcherd/` launcher(系统 UI 宿主,**多模块**:`main_menu/statusbar/settings_page/power_menu/notif_center/app_launcher/fb_compositor/audio/backlight/net/about/font_theme/keys/util` + `subpage/wifi_page/bt_page`(蓝牙/WiFi 子页)`now_playing`(Now Playing)`meow_media`(媒体会话)`meow_ipc`/`meow_settings`),+ `meow_launcher_internal.h` + `build_launcher.sh`
- `sdk/` meow_ui SDK 源码 + `build_sdk.sh`(→ `meow_ui.a`;含**统一控件库**:widget/theme/activity/global/dialog/ime/img/input/log/notify/sys/vol/view(视图框架)draw(绘制 z 序/注册表)nav/media(导航/媒体会话封装))
- `hello_app/` 示例 App(`app.c` + `ui/{home,full,demo}.c` + `ui/common/chrome.c` + `logic/{notify,state}.c` + `build_hello.sh`)
- `ncm_app/` 网易云客户端源码(`core/`:mbedtls 裁剪+jsmn+qrcodegen+minimp3;UI v1 + 复古配色;vendor/ 与 out/ gitignore 不入库)
- `ncm_app/` 流媒体客户端源码(dev.player.ncm;`core/`:mbedtls 裁剪+jsmn+qrcodegen+minimp3+dr_flac;UI 复古配色;vendor/ 与 out/ gitignore 不入库)
- `files_app/` 外置系统文件管理器 os.meow.files(app.c + ui/{browser,viewer}.c + ui/common/chrome.c + logic/fsx.c)
- `meow_sysui/` 系统进程总监(`meow_sysui` + `S70meow_sysui` + `meow_sysui.md`)
- `meow_svcd/` 服务管理器;`meow_watchdog/` 应用看门狗;`meowpkg/` 包管理(`nyai.c`);`uinput_tap/`