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公开性) 标"实现期定"
This commit is contained in:
MeowOS committed 2026-08-30 19:06:46 +08:00
1 parent a6877bbd75
commit c4e648be0e
3 files changed
+89 -3

No files matched your search

+7
View File
@@ -155,6 +155,13 @@ meow_sysui(系统进程总监,meow_svcd 托管;最小依赖/不渲染/最
- **进程隔离**:SDK 负责**系统组件渲染**的进程(launcher)与负责 **APP 渲染**的进程**相互独立**——APP 卡死/崩溃时,系统 UI(launcher)**不崩**,始终可息屏/返回/下拉通知中心(对应「物理键全局接管,APP 禁映射」APPS §3.4.1)。 - **进程隔离**:SDK 负责**系统组件渲染**的进程(launcher)与负责 **APP 渲染**的进程**相互独立**——APP 卡死/崩溃时,系统 UI(launcher)**不崩**,始终可息屏/返回/下拉通知中心(对应「物理键全局接管,APP 禁映射」APPS §3.4.1)。
- **APP 侧职责**:只画自己的内容;经 IPC 上报**全屏声明**(`fullscreen`/`route.<id>.fullscreen`)、**内容区域**(inset)与**前台 activity**;系统 UI 据此做叠画(复用 fb 双缓冲 `fb_backup/restore/pan`)与 hits 命中分流(MEOW_APP_SDK §6.1 交互分层:③ 系统全局 → ② App 全局 → ① 当前 Activity 页面控件)。 - **APP 侧职责**:只画自己的内容;经 IPC 上报**全屏声明**(`fullscreen`/`route.<id>.fullscreen`)、**内容区域**(inset)与**前台 activity**;系统 UI 据此做叠画(复用 fb 双缓冲 `fb_backup/restore/pan`)与 hits 命中分流(MEOW_APP_SDK §6.1 交互分层:③ 系统全局 → ② App 全局 → ① 当前 Activity 页面控件)。
- **「同一个状态栏」正确闭环([源:2026-08-30] 收敛修正,M2.66)**:状态栏是**同一个渲染主体**,不是「样式一样的两套实现」——
- **系统进程(launcher)统一渲染**:无论主界面还是 App 前台,状态栏都由系统 UI 进程(meow_launcherd)渲染——主界面与 App 前台用**同一个**状态栏实例(真实同一主体,非各画各的)。
- **App 前台 → 状态栏为系统叠加层**:App 前台时状态栏作为**系统叠加层**盖在 App 内容之上,复用 fb 双缓冲叠加(`fb_backup/restore/pan`,见 §10.5 / `devdocs/plan/NOTIF_CENTER_APP_OVERLAY_PLAN.md`);与通知中心/电源菜单区别:状态栏**常驻**(仅顶条 28px,不进/不出会话、非模态面板)。
- **App 进程不渲染状态栏**:SDK 全局状态栏**仅系统进程链接渲染**;**App 进程不自绘、拿不到**(§6.1 ③ 系统级控件仅内部;App 这类需求只能走 SDK 标准能力,不得自建全局叠加/悬浮层)。
- **数据源唯一**:状态栏数据(时间/电量/WiFi/音量/亮度)由 launcher **统一喂/取**(单一权威源)→ 主界面与 App 两边显示**必然一致**(根治 M2.66「launcher 右侧有亮度、App 没有」的不一致)。
- **与 §10 定案闭环**:§10.1 表已定「meow_launcherd = 系统 UI 渲染宿主」;本节把状态栏明确纳入该系统 UI 渲染宿主职责,与「APP 不渲染系统 UI」(§10.2 首条)自洽,落实「一个渲染主体 + 一个数据源」。
### 10.3 通知中心归属 [源:2026-08-30] ### 10.3 通知中心归属 [源:2026-08-30]
- **通知中心 UI 渲染主体 = 系统进程(launcher),非 APP**(跨引用 NOTIFICATION_SYSTEM §9)。 - **通知中心 UI 渲染主体 = 系统进程(launcher),非 APP**(跨引用 NOTIFICATION_SYSTEM §9)。
+77
View File
@@ -108,6 +108,15 @@ int meow_ui_statusbar_height(void);
**注意(诚实)**:这是 SDK 的较大增强——需引入系统状态读取器 + 顶部留白(inset)协调 + 与 APP 内容 z 顺序。非全屏 APP 必须给顶部 inset,否则内容被盖。API 名实现时以 `meow_ui.h` 为准。 **注意(诚实)**:这是 SDK 的较大增强——需引入系统状态读取器 + 顶部留白(inset)协调 + 与 APP 内容 z 顺序。非全屏 APP 必须给顶部 inset,否则内容被盖。API 名实现时以 `meow_ui.h` 为准。
**「同一个状态栏」正确闭环([源:2026-08-30] 收敛修正,覆盖上文部分表述)**:
- **SDK 全局状态栏 = 系统级组件,仅系统进程(launcher)链接渲染**:状态栏(`meow_ui_sys_statusbar_render` 等)**只由系统 UI 进程使用**;**App 进程不渲染状态栏**(§6.1 ③ 系统级控件仅系统内部;App 拿不到、不自绘、不可自建全局叠加/悬浮层)。
- **App 前台由系统进程叠加显示**:App 前台时状态栏作为**系统叠加层**盖在 App 内容之上(复用 fb 双缓冲叠加,见 `FRAMEWORK_DESIGN §10.2`/`§10.5`、`devdocs/plan/NOTIF_CENTER_APP_OVERLAY_PLAN.md`);与通知中心/电源菜单区别——状态栏**常驻**(仅顶条 28px,非模态面板)。
- **数据源唯一(launcher 统一喂/取)**:状态栏数据(时间/电量/WiFi/音量/亮度)由 launcher **单一权威源**喂给系统进程状态栏 → 主界面与 App 两边显示**必然一致**(根治「launcher 右侧有亮度、App 没有」);SDK 内置读取器仅作系统进程兜底,**App 侧不再渲染状态栏**。
- **右侧 = MD3 图标 + 变量值(非文本式)**:右侧为「图标+变量值」——电量图标+%、WiFi 图标(信号分档)、音量图标+%、亮度图标+%;复用 `sb_icons.h`/`SB_I_*`/`sb_blit_icon`(MD3 Material Symbols,alpha 位图,颜色由主题表提供),颜色随 `meow_theme`(`ui.style`×mode)日/夜。文本式右侧串(`statusbar_right_str` 的 `batt% WIFI 蓝牙 VOL nn% 亮度nn%`)退役/图标化。
- **顶级主题(`ui.style`)切换更换图标集**:不同风格族用不同状态栏图标集——MD3=默认图标、MIUIx=另套基础;`meow_ui_set_style` 时状态栏图标随切换(见 §8.1)。
- **对上文的影响**:「SDK 在 `meow_ui_flush()` 前自动画状态栏 / App 需 `meow_ui_statusbar_height()` 下移(inset)」的表述,在「状态栏=系统进程渲染」模型下**仅适用于系统进程**;App 侧不再自绘状态栏、顶层 28px 命中归系统(§6.1 交互分层 ③)。App 视觉是否留 inset 由系统进程叠加实现决定(实现期定,不违背本定案)。
--- ---
## 4. 图片层 API(B1) ## 4. 图片层 API(B1)
@@ -853,6 +862,74 @@ void meow_theme_remove_listener(meow_theme_listener cb);
> 主题随 `meow_settings` 的 `display.theme_mode` 键分发;框架统一,应用不必自配色——这正是"实体 UI / Web 面板 / 应用全程一致观感"的保证。 > 主题随 `meow_settings` 的 `display.theme_mode` 键分发;框架统一,应用不必自配色——这正是"实体 UI / Web 面板 / 应用全程一致观感"的保证。
### 8.1 主题增强:顶级主题 `ui.style` × 明暗 `display.theme` × 背景 `display.background` [源:2026-08-30]
> **一句话**:主题 = **顶级主题风格族(`ui.style`:MD3 / MIUIx)× 明暗(`display.theme`:dark / light)** 共同决定「整套配色 + 控件形态 + 背景底」。`display.background` **不再是独立全局维度**,而是「当前 style × 当前 mode」下**可选背景底选项集**——**可选集与默认随 style / mode 切换一起变**。**切明暗** → 同 style 的浅/深背景自动切换(修复"浅色不搭");**切 style** → 整套配色 + 背景换族(修复"背景仅对主页生效/只有深色")。本定案建立在 §5.8.4 的 MD3 语义色板之上(色板 = MD3 语义色;本节管 style×mode 选哪套 + 风格参数 + 背景源)。
#### 8.1.1 主题模型(三键语义)
| 设置键 | 域 | 语义 | 层级/关系 |
|---|---|---|---|
| `ui.style` | `md3` / `miuix` | **顶级主题风格族**:定义整套配色风格 / 控件形态 / 圆角 / 间距 / 描边 | 顶级维度;切 style → 整套配色+背景换族 |
| `display.theme` | `dark` / `light` | 该 style 下的**明暗**(深浅) | 次级维度;切明暗 → 同 style 浅/深背景自动切换 |
| `display.background` | 见 §8.1.4 | **由「当前 style × 当前 mode」决定的背景底选项集**(非独立全局维度) | 派生维度;可选集+默认随 style/mode 一起变 |
**style × mode 矩阵(可选背景底集 / 默认)**:
| style | mode | 背景底可选集 | 默认 |
|---|---|---|---|
| MD3 | dark | 黑 / 深蓝 / 墨绿(深色系) | 黑 |
| MD3 | light | 白 / 浅蓝 / 浅绿(浅色系) | 白 |
| MIUIx | dark | MIUIx 深色系一套(草案) | 随 MIUIx 深色默认 |
| MIUIx | light | MIUIx 浅色系一套(草案) | 随 MIUIx 浅色默认 |
> **修复语义**:此前 `display.background`(`black`/`blue`/`green`)只对 launcher 主页生效、只有深色、浅色不搭(launcher `meow_launcherd.c` `s_apply_setting` 的 `display.background` 分支 / `bg_presets`——`blue→0x0A1428`、`green→0x0A2814`、`else→0x000000`)。本定案将背景改为「style×mode 派生选项集」:**每种背景配色定义深/浅两套 surface/bg**(§8.1.4),随 `display.theme` 切换 → 深浅都搭、全界面(状态栏/未声明背景 App/主页)同步。
#### 8.1.2 SDK 接口(一键切换)
```c
typedef enum { MEOW_STYLE_MD3 = 0, MEOW_STYLE_MIUIX = 1 } meow_ui_style;
/* 设置顶级主题风格族(对应设置键 ui.style)。立即生效并触发全局刷新(见 §8.1.4)。 */
void meow_ui_set_style(int style); /* 越界 clamp 到合法值;同值忽略 */
int meow_ui_style(void); /* 当前 style(默认 MEOW_STYLE_MD3) */
/* 当前「style × mode」完整主题:MD3 语义色板 + 风格参数 + 背景 surface/bg。
* = 现有 meow_theme_get() 的扩展(结构体尾部追加,见 §5.8.4 + §8.1.3;旧字段 bg/fg/accent/dim 保留映射)。
* 应用只读,不自配色。 */
const meow_theme *meow_theme_get(void);
```
- **设置页联动**:设置页 `ui.style` → `meow_ui_set_style` → 框架**全局刷新**(状态栏 SDK 全局 / 未声明背景的 App / launcher 主页,§8.1.4)。App 在 `on_tick` 据通知重绘(`meow_ui_flush_region`,沿用 `meow_theme_listener` 机制)。
- **明暗联动**:`display.theme` / `display.theme_mode`(auto)变化仍走现有 `meow_theme_mode` + `meow_theme_listener`(§8 现状),仅「同一 style 下」的浅/深背景随切换自动换。
- **命名对齐(与 `meow_ui.h` / launcher 现状)**:SDK **App 侧**结构体权威名 = **`meow_theme`**(既有 `meow_theme_get()`),**不是** `meow_ui_theme`;launcher 内部另有独立结构体 `meow_ui_theme_t`(`meow_launcherd.c`,仅供状态栏/设置页,**与 App 侧无关、不暴露**)。故本节接口统一用 `meow_theme` / `meow_theme_get`;若实现期另起 `meow_ui_theme()`/`meow_ui_theme_t` 作同义别名亦可,视为与 `meow_theme` 等价(待定案)。
- **状态栏图标随 `ui.style` 换集**:状态栏右侧图标集与风格族绑定(MD3=默认图标、MIUIx=另套基础);`meow_ui_set_style` 时框架**一并切换状态栏图标集**(触发全局刷新,见 §8.1.4),颜色随 `meow_theme`(style×mode)日/夜(详见 §3.1「同一个状态栏」正确闭环)。
#### 8.1.3 两套风格参数(草案值)
`meow_theme` 在 §5.8.4 **尾部追加 MD3 语义色板**基础上,**再尾追风格参数段**(圆角/间距/描边/控件形态)。旧字段 `bg/fg/accent/dim` 保留(映射见 §5.8.4 表)。`font_title`/`font_body`(28/20)不变。
| 参数 | MD3(默认,Material You) | MIUIx(基础,可感知变化) |
|---|---|---|
| 语义色 | 柔和 tonal(`primary` 蓝、`surface` 中性、`surfaceVariant` 次级) | 更饱和、偏品牌的 `primary`;`surface` 稍偏冷、`surfaceVariant` 稍深 |
| radius(圆角) | 中等:按钮 ≈12px / 卡片 ≈16px(草案) | 更大:按钮 ≈18px / 卡片 ≈24px(草案) |
| spacing(间距) | 标准 8px 步进 | 略大 10px 步进(草案) |
| 描边 / 形态 | **无边框**(靠色面 + 状态层叠色区分) | 更扁平;**细描边**(`outline` 1px,草案);控件更扁平 |
| 控件风格 | Material You:圆角填充 + 状态层 | 扁平、圆角更大、间距更大(深度视觉细节后续迭代) |
> 两套为**草案值**,实现可微调;关键保证 **MIUIx 与 MD3 有可感知差异**(圆角/描边/间距/主色),避免"切了没感觉"。`MEOW_STYLE_MD3` 默认;MIUIx 深度细节(阴影/渐变/动画)留后续迭代。
#### 8.1.4 背景 = 全局背景源
`display.background`(选项集随 style×mode 变,见 §8.1.1 矩阵)决定主题的 `surface`/`bg`(背景底)→ **同步跟随**三类面:
1. **状态栏(SDK 全局)**:背景 `surface` 即状态栏底;
2. **未声明背景的 App**:App 未自画背景 / 未在 app.json 声明 `background` 字段 → 用系统背景(`meow_theme_get()` 的 `surface`/`bg`);
3. **launcher 主页**:主页背景(launcher `menu_bg`)随背景。
**App 显式声明背景 → 覆盖默认(App 声明优先)**。判定(现状):app.json(§9)**当前无 `background` 字段**(字段现为 name/exec/package/version/framework/immersive/icon),App 亦无系统级"声明背景"API → **App 未自画背景即视为未声明 → 跟随系统**。判定规则:App **自画背景**(自己 `meow_ui_fill_rect` 铺底 / `meow_ui_clear` 指定色)或将来在 app.json 声明 `background` 字段(草案/未实现)→ 用其自绘;否则跟随系统背景。
**深浅成对**:每种 background 配色(黑/深蓝/墨绿/白/浅蓝/浅绿/…)各定义 **深/浅两套 surface/bg**(进 `meow_theme_light` / `meow_theme_dark` 各自取值),随 `display.theme` 切换 → 切明暗时背景自动换成同 style 的对应深浅(浅色模式不再"黑底硬搭")。背景若为**图片路径**(`display.background` 现也允许 `MeowAPPs/backgrounds/xx.png`,语义保留):图片本身即观感 → **深浅切换作用于文字/角色色(surface/onSurface 等)与控件**,背景图不随深浅换(待定案)。
--- ---
## 9. 目录/构建约定 ## 9. 目录/构建约定
+5 -3
View File
@@ -19,11 +19,11 @@
| | `display.screen_off_timeout` | int 秒 | 30 | 息屏时长(0=常亮) | | | `display.screen_off_timeout` | int 秒 | 30 | 息屏时长(0=常亮) |
| | `display.refresh_rate` | enum | `60` | 刷新率上限三档 `60`/`30`/`15`(默认 60,不逼 62Hz 瓶颈) | | | `display.refresh_rate` | enum | `60` | 刷新率上限三档 `60`/`30`/`15`(默认 60,不逼 62Hz 瓶颈) |
| | `display.refresh_always_max` | bool | false | 始终最大刷新率(=60 且不自动降档);关=允许自适应降档(60→30→15) | | | `display.refresh_always_max` | bool | false | 始终最大刷新率(=60 且不自动降档);关=允许自适应降档(60→30→15) |
| | `display.theme` | enum | `dark` | `dark`/`light`(MD3 深浅;manual 模式下 s_ui_theme 直读它) | | | `display.theme` | enum | `dark` | `dark`/`light`(该顶级主题 style 下的**明暗**;manual 模式下 s_ui_theme 直读它;**切明暗→同 style 浅/深背景自动切换**,见 MEOW_APP_SDK §8.1) |
| | `display.theme_mode` | enum | `manual` | 主题判定方式:`manual`(=读 `display.theme`)/`auto`(按深色时段)。**B2b 新增** | | | `display.theme_mode` | enum | `manual` | 主题判定方式:`manual`(=读 `display.theme`)/`auto`(按深色时段)。**B2b 新增** |
| | `display.theme_dark_start` | int 分钟 0-1439 | `0` | 深色时段开始(如 19:00=1140);`start==end` 视为未配置 → auto 回退 manual。**B2b 新增** | | | `display.theme_dark_start` | int 分钟 0-1439 | `0` | 深色时段开始(如 19:00=1140);`start==end` 视为未配置 → auto 回退 manual。**B2b 新增** |
| | `display.theme_dark_end` | int 分钟 0-1439 | `0` | 深色时段结束(如 07:00=420);`start>end`=跨午夜。**B2b 新增** | | | `display.theme_dark_end` | int 分钟 0-1439 | `0` | 深色时段结束(如 07:00=420);`start>end`=跨午夜。**B2b 新增** |
| | `display.background` | path/color | `black` | `black` 或图片路径(`MeowAPPs/backgrounds/xx.png`) | | | `display.background` | enum/图片 | `black` | **由「当前 style × 当前 mode」决定的背景底选项集**(非独立全局维度;可选集+默认随 style/mode 一起变):**MD3×dark**=黑/深蓝/墨绿(默认黑)、**MD3×light**=白/浅蓝/浅绿(默认白)、**MIUIx×dark/light**各一套(草案)。每种配色定义**深/浅两套 surface/bg**,随 `display.theme` 切换(修复"背景仅对主页生效/仅深蓝/浅色不搭")。亦可为图片路径 `MeowAPPs/backgrounds/xx.png`(图片本身即观感,深浅作用于文字/角色色,待定案)。见 MEOW_APP_SDK §8.1 |
| **电源** | `power.longpress_menu_ms` | int | 3000 | 长按电源弹电源菜单阈值 | | **电源** | `power.longpress_menu_ms` | int | 3000 | 长按电源弹电源菜单阈值 |
| | `power.forceoff_ms` | int | 8000 | 长按电源强关阈值 | | | `power.forceoff_ms` | int | 8000 | 长按电源强关阈值 |
| | `power.defeat_hotkey` | string | `power_voldown` | 切系统/切 MeowOS 热键组合 | | | `power.defeat_hotkey` | string | `power_voldown` | 切系统/切 MeowOS 热键组合 |
@@ -44,7 +44,7 @@
| | `font.class_other` | path | *(空=跟全局)* | 多字体:其他字符 所用字体 | | | `font.class_other` | path | *(空=跟全局)* | 多字体:其他字符 所用字体 |
| | `font.load_full` | int 0/1 | 0 | **加载大字库(M2.5x)**:1=**强制全系统用大字库(`gbk`≈20k 档)**,覆盖 app 未声明/覆盖默认 `font.file`;0=默认小字库(`common`≈4k),仅 app 声明 `fonts:"full"` 才大字库 [源:用户 2026-08-30] | | | `font.load_full` | int 0/1 | 0 | **加载大字库(M2.5x)**:1=**强制全系统用大字库(`gbk`≈20k 档)**,覆盖 app 未声明/覆盖默认 `font.file`;0=默认小字库(`common`≈4k),仅 app 声明 `fonts:"full"` 才大字库 [源:用户 2026-08-30] |
| | `font.size.title` / `font.size.body` | int | 28/20 | 标题/正文字号 | | | `font.size.title` / `font.size.body` | int | 28/20 | 标题/正文字号 |
| | `ui.style` | enum | `md3` | `md3`(Material You)/`miui` | | | `ui.style` | enum | `md3` | `md3`(默认,Material You)/`miuix`(MIUIx,**未实现**)——**顶级主题风格族**(定义整套配色风格/控件形态/圆角/间距/描边),对应 SDK `MEOW_STYLE_MD3`/`MEOW_STYLE_MIUIX`(MEOW_APP_SDK §8.1) |
| **通知** | `notify.center_enabled` | bool | true | 下拉通知中心开关 | | **通知** | `notify.center_enabled` | bool | true | 下拉通知中心开关 |
| | `notify.app_quota` | int | 16 | 每应用通知配额 | | | `notify.app_quota` | int | 16 | 每应用通知配额 |
| | `notify.categories` | int | 4 | 通知类型数上限(每 App,M2.53)[源:审计 2026-08-30]| | | `notify.categories` | int | 4 | 通知类型数上限(每 App,M2.53)[源:审计 2026-08-30]|
@@ -65,6 +65,8 @@
> 新增设置项时:在清单加一行 + 存储 schema + API 常量/枚举 + 实体 UI 控件 + web 面板控件(四端同步)。 > 新增设置项时:在清单加一行 + 存储 schema + API 常量/枚举 + 实体 UI 控件 + web 面板控件(四端同步)。
> **主题三键语义(2026-08-30 定案,实现权威见 MEOW_APP_SDK §8.1)**:`ui.style`(MD3/MIUIx)=**顶级主题风格族**(定义整套配色/控件形态/圆角/描边);`display.theme`(dark/light)=该 style 下的**明暗**;`display.background` =**由「当前 style × 当前 mode」决定的背景底选项集**(非独立全局维度,可选集+默认随 style/mode 一起变)。三者关系:**切明暗 → 同 style 浅/深背景自动切换**(修复"浅色不搭");**切 style → 整套配色+背景换族**(修复"背景仅对主页生效/只有深色")——同时把 `display.background` 从"仅 launcher 主页/仅深色"改为"**全局背景源**"(状态栏/未声明背景 App/主页同步;App 显式声明背景则覆盖,App 声明优先)。`meow_ui_theme` 旧字段 `bg/fg/accent/dim` 保留映射到 MD3 语义色(§5.8.4)。**注**:`ui.style` 值域现状 `meow_settings.c g_defs` 为 `"md3,miui"`(label "Material You,MIUI");本定案将第二风格命名为 **`miuix`**(对应 `MEOW_STYLE_MIUIX`),实现时把 `g_defs` 的 `miui` 对齐为 `miuix`(待定案——MIUIx 未实现,当前仅 md3 生效)。
## 2. 统一存储(单一数据源) ## 2. 统一存储(单一数据源)
- **主持久化位置:板载 `/usr/data/meow/settings.conf`**(UBIFS)。settings.conf 是**小文件**(几十行、<10KB),持久在板载可跨换卡/掉卡保留配置,避免换音乐卡丢失设置。板载仅此小设置文件(日志/字库/媒体等大数据仍留 TF 卡,符合"板载不写大文件"纪律;KB 级设置除外)。 - **主持久化位置:板载 `/usr/data/meow/settings.conf`**(UBIFS)。settings.conf 是**小文件**(几十行、<10KB),持久在板载可跨换卡/掉卡保留配置,避免换音乐卡丢失设置。板载仅此小设置文件(日志/字库/媒体等大数据仍留 TF 卡,符合"板载不写大文件"纪律;KB 级设置除外)。