Skip to content

P2 Startup Mach Clock Bridge v1 结果

结论

本批没有把 ActivityTrace 强行并入产品。iOS 17/18 真机证明:ActivityTrace 与 CoreProfile 即使使用不同 channel,也会争用设备侧 trace 会话;单 provider、双 provider 均出现 ActivityTrace 有回包而 CoreProfile 为 0。CoreProfile 单源仍能解码 401,517 条,因此问题不属于 DTX reader 竞争。

基座保持唯一 pymobiledevice3 DTX owner,替代方案已经实现为 Fixture mach_absolute_time() 离线桥:公开生命周期回调把原始 Mach tick/timebase 写入 Fixture Documents;CoreProfile 停止后由 House Arrest 顺序取回,离线审计同一 timebase、CoreProfile tick 窗口、marker 完整性与注入误差。产品普通 App 不读取容器、不集成 marker。

代码与 E2 门禁已完成;新 Fixture 开发签名需要 Xcode 访问 Apple 开发者服务更新描述文件,该外部账户动作未获得本轮明确授权,所以 iOS 17/18 marker 取回与因果重跑保持开放。启动内部阶段继续 null/—,新 mapping 为 0。

实现

  1. 新增 perfowl.fixture-mach-marker/1,字段包含 session nonce、sequence、phase/edge、injected delay、Mach absolute tick 与 numer/denom。
  2. 新增 fixture-mach-absolute-bridge.v1,验证 marker schema、单 Session、严格序号、tick 递增、timebase、CoreProfile 窗口、身份、drop 与注入误差。
  3. 新增 startup-clock-bridge 离线 CLI 与 hash-bound startup-clock-bridge-report.json
  4. Fixture runner 在 DTX Session 完成后才读取沙箱 marker,避免与 CoreProfile trace 并发。
  5. Foundation 升级为 collector-foundation.1.8-beta,Collector 0.17.0,Mac App 1.0.0 (27);Registry 保持 64 项。

真机隔离证据

CaseDTX providerActivityTrace 选中行CoreProfile records结论
iOS 17 单 owner120trace 会话冲突
iOS 17 双 owner210第二 provider 不能解决
iOS 18 单 owner1120trace 会话冲突
iOS 17 CoreProfile 单源对照1401,517CoreProfile 来源可用

全部探针 drop high-water 为 0。既有 iOS 18 Semantic Evidence 批次中,CoreProfile 单源 9 个 Session 共 5,645,809 records、identity/drop 9/9,可作为第二系统对照。

匿名机器可读证据:perfowl-startup-mach-clock-bridge-v1-anonymous-2026-09-06.json,SHA-256 7d0bea1e9fb9e1a338c37d70ee099c049539372c29476ccc09d91f018d9aa25d

验收

门禁结果层级
Python 全量测试164/164E2
Swift 全量测试80/80E2
Fixture unsigned 构建通过E2
VitePress 构建通过;103 个归档文件同步E2
Foundation 包perfowl-collector-foundation-1.8-beta-x86_64.tar.gz;SHA-256 49069e2819e0eda4cd04c2cbc830d3d6f682072aa0a2b21767b36b4f4e36d2dfE2
Mac 测试包Perfowl-1.0.0-beta27-x86_64.zip;SHA-256 441b750708ae8326a004df97aafe2f093058b7f93bda2845368bccd7ccf6a9ecE2
独立解包13,091 个普通文件、34 个符号链接;严格验签、pmd3 11.3.1 probe 与新 CLI 通过E2
ActivityTrace/CoreProfile 互斥iOS 17/18 复现E4
Fixture Mach marker代码/E2 通过;签名安装、沙箱取回未执行E4 blocked

门禁状态

  • 已关:ActivityTrace 是否能作为同 owner 同窗桥的数据源——结论为不采用。
  • 已关:是否增加第二 DTX owner——真机没有收益,保持唯一 owner。
  • 开放:Xcode 更新 Fixture 开发描述文件后,在 iOS 17/18 验证 marker timebase 与 CoreProfile 窗口。
  • 开放:control/will/did 各至少 3 次,时钟桥、因果证据、Mapping v3 重复性三门禁联合验收。
  • 开放:iOS 15、17.4–17.x 与第二 App 的 mapping 回归。

下一阶段工作

获得外部描述文件更新授权后,先完成 iOS 17/18 Fixture Mach marker E4;门禁通过再自动运行 control / willFinish / didFinish 各至少 3 次并重算因果证据。只有因果与 Mapping v3 重复性都通过,才单独更新 decoder;否则继续 null/—

整体进度

P0/P1 完成;P2 主体、公式、Semantic Evidence 与 Mach 桥代码完成,启动内部阶段仍受 Fixture 新包 E4 和 mapping 三门禁约束;P3 代码链完成;P4 产品链完成、人工 UI 验收开放;P5 部分完成;P6 xctrace 真机阻塞;P7 未开始。

Perfowl · Performance Observer