Skip to content

iOS 26 / iOS 27 全指标 E2 支持结果 ​

结论 ​

C26/27-1~5 已按批准方案完成。Perfowl 现在显式识别 iOS 15、16、17、18、26、27;iOS 26/27 进入独立 E2 candidate 平台 Profile,现代 USB 路由生成 usbmux / --native,Wi-Fi 保持 userspace 路线。9 个 source family 唯一覆盖 Registry 的 64/64 metricID,重复 0、缺失 0、无 Adapter 家族 0。

本批没有连接 iOS 26/27 设备。以上结论只证明代码合同、路由参数、Wire、离线派生入口和最终构建闭环,不证明两个系统上的私有服务 selector、回包 schema、单位或数值正确;也不继承 iOS 18 的 E4 证据。

交付身份 ​

项结果
Foundationcollector-foundation.2.6-beta
Mac App1.0.0 (37)
运行时CPython 3.12.3 / pymobiledevice3 11.3.1
DTX owner单 pymobiledevice3 Provider/DTX owner
平台合同perfowl.ios-platform-profile/1
支持 major15, 16, 17, 18, 26, 27
iOS 26 / 27 状态e2-candidate / e2-candidate
未声明 major19~25、28+ fail-closed

C26/27-1 · 平台合同与路由 ​

新增集中式 JSON 平台合同与 Python/Swift 镜像。iOS 26/27 USB 使用 modern usbmux 请求、优先 macOS native remoted;Collector 参数明确包含 --native,不创建第二个 DTX owner。Network 设备继续使用 wifi-userspace。未知 major 在设备准备和 Collector 入口显式失败,不再误入 legacy 或泛化 iOS18+。

compatibility.py、SourcePolicy 与 Delivery 同步改为独立 family;iOS 18 历史 E4 只属于 iOS 18,26/27 固定为 E2 candidate。

C26/27-2 · 64 项 Source Contract ​

source familymetric 数Adapter / 派生层
sysmontap15pmd3.sysmontap.raw
device-network2pmd3.device-network.raw
process-network2perfowl.process-network.raw
graphics4pmd3.graphics.raw
gpu-counter1perfowl.gpu-counter.raw
core-profile-frame15pmd3.core-profile.raw + perfowl.frame-pipeline
energy7pmd3.energy.raw
device-conditions6pmd3.device-condition.raw
startup12lifecycle + CoreProfile + startup control
合计649/9 family 均有实现入口

自动门禁直接从 Swift PerformanceModels.swift 提取真实 Registry ID,与平台合同进行集合校验。结果为 64/64、无重复、无缺失、无意外 ID。匿名机器可读结果见 平台合同 E2 证据。

这里的“覆盖”表示每个 metricID 有唯一源/派生归属,不表示每项在 iOS 26/27 真机上一定非空。未知字段、schema、负值哨兵、首点 warmup 和 counter reset 继续保持 missing 质量,不用 0 代替。

C26/27-3 · Startup readiness 与 Profile ​

新增:

  • startup-coreprofile-lifecycle.ios26.reference.e2.v1,provenance 包含 no-ios26-device-evidence;
  • startup-coreprofile-lifecycle.ios27.reference.e2.v1,provenance 包含 no-ios27-device-evidence。

未登记的 iOS 15~18 Build 现在回退到 major-family candidate;已登记 exact Build + trace hash 仍优先;19~25 与 28+ 仍拒绝进入 Profile。Wire 将 Startup 就绪拆成:

  1. sourceChannelArmed:CoreProfile 通道已打开;
  2. hostDrainHealthy:主机预热排空健康;
  3. decoderProfileAvailable:当前 major 存在可审计 Profile。

客户端优先读新字段,并保留旧 sourceArmed Wire 回退。三类失败分别显示通道、主机流或 Profile reason,不再统一显示“启动分析数据源未武装”。公式、9 阶段映射、5 ms 乱序窗口和 missing 规则均未修改。

C26/27-4/5 · 验证与产物 ​

门禁结果证据
Python 全量测试230/230E2
Swift 全量测试109/109E2
平台 Profile6/6 唯一E2
iOS 26/27 route2/2E2
Source family9/9E2
Registry 合同64/64;duplicate/missing/unexpected 均 0E2
Collector probeready=true;pymobiledevice3 11.3.1E2/E3 构建环境
Mac AppBuild 37,x86_64 Mach-OE2
App 签名codesign --verify --deep --strict 通过E2
ZIP 独立解包签名通过E2
ZIP SHA-25670f144a21deae5837f2576128a1825c19bd1cd1ece231c93a13adb1be85e46c6E2
iOS 26/27 真机未执行E4 open

测试包:MacApp/dist/Perfowl-1.0.0-37-x86_64.zip(本地构建产物,不进入 Git 历史)。

公式与质量语义 ​

本批只扩展平台兼容,不变更任何指标公式或算法版本。CPU、内存、网络、Frame、Jank、TinyJank、Smooth、Energy、Battery、Thermal 与 Startup 继续以各 Canonical 知识页的原始字段、scope、单位、窗口、差分、取整、异常和版本历史为准。若真机阶段发现 iOS 26/27 字段或单位变化,对应指标立即降级 missing/unsupported-schema,先修订公式文档,再进入新开发批次。

尚未关闭的门禁 ​

  1. iOS 26 与 iOS 27 各至少一台真机的发现、App 列表、截图、路由和反复重连;
  2. 9 个 source family 的服务可达性、selector、schema、单位、合法 0 和 drop;
  3. 64 项逐项 observed/missing 原因与数值校准;
  4. 商店 App 唯一冷启动和 Startup 九阶段完整性;
  5. 30 分钟混合指标、8 小时长稳、拔线/锁屏/睡眠/前后台/进程重启恢复。

下一阶段工作 ​

进入 C26/27-E4 真机兼容验收。设备到位后先执行连接与 9 个 source family 的只读 schema census,再做 64 项 observed/missing 账本、Startup 唯一冷启动与九阶段、长稳和恢复测试;任何 schema 差异单独立项,不直接改公式。

整体进度 ​

  • iOS 15+ 架构目标:平台合同已覆盖 15/16/17/18/26/27;19~25 与 28+ 仍显式关闭。
  • 64 项 Registry:64/64 均有代码级 source/派生归属;iOS 26/27 达到 E2 candidate。
  • 已有真机证据:iOS 16/17/18 的既有结论保持不变。
  • iOS 26/27:E2 开发完成,E4、数值、长期稳定和跨机型为下一阶段。

Perfowl · Performance Observer