# PLATFORM_REPORT_R2 — CMK Android（图片素材与设计还原恢复）

- 平台：ANDROID（CMK Android，独立 LARGE_BUNDLE 执行）
- worktree：`.worktrees/kids-cmk-android-r2-image-recovery`
- 分支：`experiment/cmk-android-r2-image-and-visual-content-recovery`
- 基线 commit：`ec123ad33bdeab9bf8fba35dcc1c547133732994`
- 交付根：`outputs/MTFDX_KIDS_MOBILE_ANDROID_IOS_PARALLEL_IMAGE_ASSET_AND_DESIGN_FIDELITY_RECOVERY_R2/ANDROID/`

## 1. 权威与基线

- `CMK_ANDROID_VISUAL_AUTHORITY_R1 = CANDIDATE_NOT_APPROVED`（O-5 无像素权威；V-2 图标/插画为自有描边）。
- 参数契约全部 token = `CANDIDATE_NOT_APPROVED`（OD-010/OD-012 PENDING_OWNER）；未改任何 token 值。
- 品牌参照 `KIDS_WEBSITE_VISUAL_REFERENCE_R1` 经核验为 **Owner 已批准**（2026-10-08，refSha256 `d58e7c17…`）；worktree 内 `KIDS_FAMILY` 状态副本已过期（`ACTIVE_VISUAL_AUTHORITY_COUNT=0`），差异见 `BASELINE_AND_AUTHORITY/`，未单方面改动共享权威。

## 2. DESIGN_IMAGE_ASSET_MAP 统计

| 指标 | 数量 |
|---|---|
| 覆盖区块 | 12 |
| RECOVERED（含品牌恢复） | 4（其中 RECOVERED_SUBSTITUTE_DISCLOSED=3，BRAND_ASSET_RECOVERED=1） |
| BLOCKED_ASSET_AUTHORITY | 2（头像/插画原稿、地图瓦片；另网站共同根因 1） |
| ICON_VECTOR_ONLY（规格未要求位图） | 4 |

> `RECOVERED_SUBSTITUTE_DISCLOSED` = 仓库原创、明确披露为**替代而非复刻**，**不计作原设计图片恢复**。

## 3. 关键修复

1. **Home 头像（DS.ChildAvatar）**：emoji 字体字形 → 资源化矢量头像，带 contentDescription（D-AND-R2-01）。
2. **Explore 离线插画**：新增并接入 §L613 要求的离线插画（D-AND-R2-02）。
3. **启动图标打包**：新增 mipmap-anydpi-v26 自适应/圆形图标，manifest 指向 `@mipmap`（D-AND-R2-03）。
4. **品牌 mark**：按 Owner 已批准品牌参照恢复启动图标（品牌色 + M 字标 + 珊瑚点）。
5. **i18n**：新增 2 键 × 4 语言；messages.json 校验 502 键通过。
6. **回归测试**：新增 `CmkImageAssetBindingTest`（资源非零 + emoji 不得回归）。

## 4. 构建与测试

| 项 | 结果 |
|---|---|
| `:app:assembleDebug` | BUILD SUCCESSFUL |
| `:app:testDebugUnitTest` | tests=185 skipped=0 failures=0 errors=0 |
| JDK / AGP | JDK17 / AGP8.7.3；compileSdk 35 / minSdk 29 |
| after APK SHA-256 | `76f9edfa28ae2e4ea21bd8a4a08f24522151df5cb9068e7003a54882464a8abd` |
| before APK SHA-256 | `f54906b9ff3cf1375555ebc88c01579adbd8272308c84825bde9bdc876e3210d` |

## 5. 真实运行截图矩阵

| 设备 | AVD | 截图数 | 校验 |
|---|---|---|---|
| Phone | Medium_Phone_API_37.0 (emulator-5554, 1080×2400) | 16 before + 16 after | VISIBLE_OK 32/32；before→after DELTA_OK 16/16 |
| Fold | CMK_Fold_API_37 (emulator-5556) | 16 after | VISIBLE_OK 32/32 |
| Tablet | CMK_Tablet_API_37 (emulator-5558, 1600×2560) | 16 after | VISIBLE_OK 32/32 |
| 合计 | — | 64 PNG | 全非全白（`VERIFY_*` 像素统计） |

语言 ja-JP/en/zh-Hans/zh-Hant × light/dark。目录 `RUNTIME_SCREENSHOTS/`，含 manifest 与 SHA-256。

## 6. VPS03 预览（只读、非生产、免登录）

- URL：https://cmk-android-r2.preview.mtfdxlab.com/
- 根：HTTP 200，`text/html`；`strict-transport-security: max-age=3600`；`x-mtfdx-environment: kids-cmk-android-r2-preview`；`x-mtfdx-owner-preview: read-only`；无 `www-authenticate`。
- 全部 64 张 media：HTTP 200 且 `content-type: image/png`（media_fail=0）。
- manifest/report/APK：200，类型正确（APK=`application/vnd.android.package-archive`）。
- Web walkthrough 仅辅助，**非原生 Android 渲染，不作为原生验收替代**。
- VPS01/VPS02 未访问、未修改。

## 7. 残差（P0/P1/P2）

- **P0：无**（未发现安全/功能阻断；SOS、家长门禁、无障碍保持）。
- **P1**：原设计头像原稿、离线插画原稿、地图瓦片缺失 → `BLOCKED_ASSET_AUTHORITY`，等待 Owner 提供已批准素材/瓦片（OD-AND-R2-AVATAR / OFFLINE-ILLU / MAP / OD-R16-MEDIA-01）。
- **P2**：替代矢量与最终设计可能不一致；横版品牌 logo 未被儿童端页面要求；截图首个冷启动帧（`after-home-en-light`）可能残留上一次持久化语言（图像面本身与语言无关，已如实记录）。
- **非自比 PASS**：无已批准 CMK Android 像素权威，before/after 仅为真实运行差异，**不构成对原设计的像素一致证明**。

## 8. 诚实声明 / 限制

- 未做像素级原设计一致性比对（O-5 未批准）。
- APK `versionName` 仍为 `0.9.0-r15`（沿用基线，未改以保持截图与 APK 可追溯）；versionCode=14。
- 未改动任何共享权威/token；worktree `KIDS_FAMILY` 状态副本过期已在文档中登记。

## 9. Owner 门禁与停点

```
OWNER_VISUAL_ACCEPTANCE=NOT_APPROVED
FINAL_UI_FREEZE=NO
MAIN_MERGE=NO
PRODUCTION=NO
VPS01/VPS02=UNTOUCHED
STOP_POINT=WAITING_FOR_OWNER_ANDROID_R2_VISUAL_ACCEPTANCE
```
## 10. Large Bundle 门禁状态（如实）

- `bash scripts/mtfdx-large-bundle-gate.sh` → `LARGE_BUNDLE_GATE_FAIL reason=STATE_MISSING`（无本地完成记录）。
- 本轮**不申报 PASS/DONE、不做最终冻结 QA**（Owner 视觉验收未通过，FINAL_UI_FREEZE=NO）；因此未创建完成记录，避免虚假完成声明。
- 已完成的工程回归：`:app:assembleDebug` BUILD SUCCESSFUL；`:app:testDebugUnitTest` tests=185/0；64 张真机截图非空校验通过；VPS03 curl 核验通过。
