Skip to content

CORE-20 Battery 模式门禁、20 秒采样与 Thermal 来源审计结果

交付结论

CORE-20 已交付 collector-foundation.1.2-beta 与 Mac App 1.0.0 (20) internal beta。Device Condition 改为“首次立即 + monotonic 固定 deadline 20 秒”采样;Battery Current / Voltage / Power 仅在同一快照明确处于 battery-only 放电模式时生成。USB 外部供电场景下三项值保持空值,不再把 0 或符号不明的电流发布为电池功耗。

批次状态为 implemented · partial:iOS 17/18 最终打包 Collector 已证明 20 秒节拍和 USB fail-closed 规则(E4);尚无 Wi-Fi / ExternalConnected=false 的 battery-only 真机证据,也没有 PerfDog 同时间窗校准。Battery 产品入口因此继续 Unsupported,ThermalStatus 保持 Partial。

冻结公式与产品落点

范围规则质量语义产品状态
Device Condition 节拍首次立即;之后 start + N×20s;超时跳过已错过窗口不累积读取漂移,不追赶式连发已进入打包 Collector
Battery CurrentExternalConnected=falseIsCharging=falseInstantAmperage<=0 时取绝对值外供电、充电、状态缺失、正电流均 fail-closedUnsupported
Battery Voltage同一 battery-only 快照内只接受有限正值不跨快照补值Unsupported
Battery Powerabs(InstantAmperage) × Voltage / 1000Current / Voltage 任一无效则 value=nullUnsupported
TemperatureTemperature / 100,原值范围 0–8000独立于 Battery 电学门禁Partial
ThermalStatus稳定当前值来源的 0–3通知名称、温度、Energy thermal cost 均不代替Partial

全量原始字段、单位、窗口、缺失与取整规则见 Energy、Battery 与 Thermal 指标 v3

自动化与确定性重放(E2)

范围结果
Python 系统环境105/105
Python 冻结 CPython 3.12.3105/105
Swift70/70
Metric 双重重放237 raw / 34 metric frame / 36 observed metricID / 29 Stat;全部产物哈希一致
Frame 双重重放iOS 16=21/20、iOS 17=9/8、iOS 18=35/34 accepted/interval;unknown chunk/byte 均为 0;全部哈希一致

最终打包 Collector 真机验收(E4)

项目iOS 17 · 设备 A / 目标 App AiOS 18 · 设备 B / 目标 App B
运行时长约 23 s约 23 s
sample / raw event / Stat22 / 462 / 2922 / 474 / 29
Device Condition raw22
两次条件采样间隔19.983423547 s19.987156217 s
观察到的电源状态ExternalConnected=trueIsCharging=falseExternalConnected=trueIsCharging=false
Current / Voltage / Power均 value=null / external-power-connected均 value=null / external-power-connected
Temperature33.09、33.29 °C candidate34.29、34.39 °C candidate
ThermalStatus2 组均 missing2 组均 missing
identity / drop / wire errorverified / 0 / 0verified / 0 / 0
delivery SHA-256fe2e7f7e5641ead2bd6cf47f0b4117379352fca43d93a78c0c6280134912bd03f4867f8c39f2b4a7afb5833abdc4bad925e6ad739b6b2c057c4e1675b58ee91d

两组验收只证明 USB 供电下的可信拒绝、20 秒节拍与 Temperature 独立性,不证明 Battery 放电数值已可用或已与 PerfDog 对齐。真实设备、应用、Bundle ID、PID、账号与证书标识均未进入仓库证据。

当前能力矩阵

Registry 保持 53 项:36 项默认实时结构、13 项离线 Frame candidate、2 项 controlled-launch candidate、2 项 Unsupported。Battery 三项虽已接通 raw → Metric → wire → Swift 的结构,但产品选择器仍为 Unsupported;结构存在不等于数值可用。

对比 PerfDog 仍未具备:

  1. Battery 的 Wi-Fi 设备发现、真正 battery-only 放电样本和同窗校准。
  2. ThermalStatus 稳定的 0–3 当前值来源。
  3. TinyJank、Smooth 的可信定义。
  4. 目标进程专属逐帧与 GPU 归因。
  5. main、首帧等精确启动分阶段。
  6. Energy 负载响应、GPU Counter 跨设备 schema、长时稳定性、iOS 15 与 iOS 17.4–17.x 覆盖。

详见 Collector Foundation 1.2 Beta 能力矩阵 v6

内部测试产物

产物SHA-256
Perfowl.app 主程序4d098dc43b71302b0ef7a31eeeed2a0bb78cc68548dd8228ddd05ab151252d23
Perfowl-1.0.0-beta20-x86_64.zipe63372071cd381e556a95a9226d199477a7c66b4053cca68dc3f8b27eabb0e59
perfowl-collector-foundation-1.2-beta-x86_64.tar.gz92c0fdee30f145577552952839c85207fff7d5e8498468e4e6ad51aeac541021

App plist、x86_64 架构、ad-hoc 深度签名、ZIP 完整性及主程序哈希一致性、内置 Collector probe ready=true / 9 capabilities、pymobiledevice3 11.3.1 与五组命令入口已检查。聚合匿名证据见 CORE-20 E4 JSON

仍未关门

  • Battery 继续 Unsupported:需先实现 Wi-Fi 设备发现,再于断开 USB 后取得 ExternalConnected=false 的 20 秒真机样本,最后与 PerfDog 同窗对照。
  • ThermalStatus 继续 Partial:当前 iOS 17/18 payload 未观察到稳定枚举字段。
  • Energy 负载响应与 PerfDog 同窗、iOS 15、iOS 17.4–17.x、长时稳定性、arm64/universal2、Developer ID、公证与 GPL-3.0 法务结论继续开放。
  • 当前产物是 x86_64 ad-hoc 内部测试版;真机 E4 针对最终打包 Collector,Battery 选择器未点亮。

关联资产

Perfowl · Performance Observer