外观
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。
实现
- 新增
perfowl.fixture-mach-marker/1,字段包含 session nonce、sequence、phase/edge、injected delay、Mach absolute tick 与 numer/denom。 - 新增
fixture-mach-absolute-bridge.v1,验证 marker schema、单 Session、严格序号、tick 递增、timebase、CoreProfile 窗口、身份、drop 与注入误差。 - 新增
startup-clock-bridge离线 CLI 与 hash-boundstartup-clock-bridge-report.json。 - Fixture runner 在 DTX Session 完成后才读取沙箱 marker,避免与 CoreProfile trace 并发。
- Foundation 升级为
collector-foundation.1.8-beta,Collector0.17.0,Mac App1.0.0 (27);Registry 保持 64 项。
真机隔离证据
| Case | DTX provider | ActivityTrace 选中行 | CoreProfile records | 结论 |
|---|---|---|---|---|
| iOS 17 单 owner | 1 | 2 | 0 | trace 会话冲突 |
| iOS 17 双 owner | 2 | 1 | 0 | 第二 provider 不能解决 |
| iOS 18 单 owner | 1 | 12 | 0 | trace 会话冲突 |
| iOS 17 CoreProfile 单源对照 | 1 | — | 401,517 | CoreProfile 来源可用 |
全部探针 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/164 | E2 |
| Swift 全量测试 | 80/80 | E2 |
| Fixture unsigned 构建 | 通过 | E2 |
| VitePress 构建 | 通过;103 个归档文件同步 | E2 |
| Foundation 包 | perfowl-collector-foundation-1.8-beta-x86_64.tar.gz;SHA-256 49069e2819e0eda4cd04c2cbc830d3d6f682072aa0a2b21767b36b4f4e36d2df | E2 |
| Mac 测试包 | Perfowl-1.0.0-beta27-x86_64.zip;SHA-256 441b750708ae8326a004df97aafe2f093058b7f93bda2845368bccd7ccf6a9ec | E2 |
| 独立解包 | 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 未开始。