E1 PLAN · P4 · 待批准
iOS 26 / iOS 27 全指标 E2 支持方案
一、支持边界
| 层级 | 交付含义 | 本批 |
|---|---|---|
| E2 | 26/27 可识别、可生成现代 RSD 路由;64 指标都有 Adapter/派生合同;Startup 可预武装;Fixture 全链和打包通过 | 完成目标 |
| E4 | 真实设备证明 selector、schema、单位、数值、归因、停止恢复与 Startup 九阶段 | 后置门禁 |
二、现状根因
- 常规连接把所有
major >= 18归入iOS18+,iOS 18 的 E4 容易被错误继承给 26/27。 - Startup 仅登记 iOS 15~18;未知精确 Build 会在 major-family 回退前直接失败。
sourceArmed混合了“通道打开”和“Decoder 已验证”,导致错误提示失真。
三、平台与路由合同
perfowl.ios-platform-profile/1 majorVersion / familyID / requestedRoute / expectedProviderRoute metricSourceContracts / startupDecoderProfile / evidenceLevel validationStatus / fallbackPolicy
| 系统 | family | 请求路线 | 证据 |
|---|---|---|---|
| iOS 15/16 | 显式旧系统 family | legacy-usb → usbmux-lockdown | 保持既有状态 |
| iOS 17 | 17.0–17.3 / 17.4+ | usb/usbmux → native remoted/RSD | 保持既有状态 |
| iOS 18 | iOS18 | usbmux → native remoted/RSD | 既有 E4 |
| iOS 26 | iOS26 | usbmux → native remoted/RSD | E2 candidate |
| iOS 27 | iOS27 | usbmux → native remoted/RSD | E2 candidate |
显式支持集合为 {15,16,17,18,26,27};28+ 不自动继承。Provider/DTX owner 始终只有一个。
四、64 项覆盖
| 指标族 | 数量 | 源 | 26/27 E2 策略 |
|---|---|---|---|
| CPU/内存/线程/调度/磁盘 | 15 | sysmontap | 字段、核数、计数器重置、16 KB 页与 missing Fixture |
| 网络 | 4 | networking / NetworkStatistics | 设备 interval 与进程 delta/time 独立 |
| Graphics/GPU | 5 | graphics / GPU dynamic schema | schema/data row 不成立即 missing |
| Frame/流畅度 | 15 | CoreProfile RAW v2 | 布局、Mach timebase、逐帧与报告双重回放 |
| Energy | 7 | debug-gauge energy | selector/schema 分层;负哨兵过滤 |
| Battery/Thermal | 6 | diagnostics IORegistry | 外接电源门禁;字段间不推断 |
| Startup | 12 | ProcessControl/DeviceInfo/CoreProfile | 外部两项 + 九阶段 E2 Profile |
| 合计 | 64 | 64/64 必须具备唯一平台合同 | |
公式不变:本批只扩展平台兼容性。现有 Registry definitionVersion、差分、单位、取整、missing、Jank/TinyJank/Smooth、Battery power 与 Startup Total/阶段公式全部保持不变。发现新单位或 schema 时 fail-closed,另开公式修订批次。
五、Startup 设计
sourceChannelArmed = CoreProfile channel opened hostDrainHealthy = host drain active without drop decoderProfileAvailable = major has E2/E4 profile decoderProfileStatus = candidate | validated | unsupported decoderProfileReason = exact-build | major-family-e2 | unsupported-major | schema-mismatch
新增 startup-coreprofile-lifecycle.ios26.reference.e2.v1 与 ...ios27.reference.e2.v1。二者复用冻结 transition table 仅作为 E2 兼容假设,provenance 明示无 26/27 真机证据;未知 26.x/27.x Build 回退对应 major Profile。RAW magic、timebase、目标归因、BEGIN/END 或终点任一缺失时,九阶段全部 missing。
六、开发批次
- C26/27-1:平台合同、compatibility/source policy/delivery 与连接路由。
- C26/27-2:64 项 Registry → Adapter → raw → formula → report 自动覆盖门禁。
- C26/27-3:Startup readiness 分层、26/27 candidate Profile、未知 Build 回退与错误原因透传。
- C26/27-4:26/27 匿名合成 Raw Session 双重回放、UI 质量展示、Build 37。
- C26/27-5:Python/Swift 全量、64 项知识门禁、VitePress、Core probe、签名与独立解包收口。
七、E2 硬门槛
- 平台 2/2、Adapter family 9/9、Registry source contract 64/64。
- 26/27 路由、missing/合法 0/counter-reset、Frame 双重回放、Startup Profile Fixture 全部通过。
- delivery 对 26/27 只写
e2-candidate,不继承 iOS 18 E4。 - Build 37 完成 Mach-O、严格签名、内置工具 probe、ZIP 独立解包与 SHA-256。
八、E4 后置门禁
后续仍需两系统真机的发现/应用/截图/重连,九类源 selector 与 schema,64 项 observed/missing 与合法 0,数值校准,Store App Startup 九阶段,30 分钟混合采集、8 小时长稳及异常恢复。关闭前不升级为 validated。
九、回滚
平台 Profile 是唯一开关;移除 26/27 Profile 即恢复显式 unsupported,不影响 15~18。单个 Adapter 失败只降级所属指标。不上调 pymobiledevice3、不引入第二个 DTX reader、不让 py-ios-device 进入运行时。