implP4E3implemented · gate-open2026-09-04

CORE-2B 候选 Sidecar、路由与 Raw Session

开发方案(先于代码)

本阶段建立与旧 Collector 完全隔离的 core-11.3.1 候选入口,默认客户端继续使用已回归的旧链。候选入口只做原始事实采集,不新增或改变任何指标公式。

目标

  1. iOS 15–16 使用 USBMux + Lockdown;iOS 17+ 只接受已建立的 tunneld/RSD 路线,缺少路线时 fail closed。
  2. 在唯一 DvtProvider / DTXConnection 上完成 Bundle ID → PID → process list 二次核验,PID 变化递增 target generation。
  3. 并发承接 Sysmontap、Graphics、Device Network 三路 raw Adapter;写盘前分配 Session 全局序号。
  4. 生成 append-only JSONL 与 manifest;manifest 保存事件数、类型计数、drop 数、SHA-256 和结束状态。
  5. 回放必须校验 schema、全局序号、monotonic time、文件摘要和 manifest 计数,任一不符即拒绝。
  6. 新增独立 PyInstaller 构建脚本;不覆盖旧 perfowl_collector,不修改 Mac App 默认启动行为。

停止条件与回滚

指标与公式影响

本阶段仅保存 raw envelope,不产生派生指标,因此没有新公式进入 Registry/UI/报告,也不触发指标 knowledge 双写。原始值保持 source-native;scope、identity、drop、reconnect generation 必须随事件保存。

实施结果

候选产物位于忽略目录 MacApp/.sidecar-build/output/core-x86_64/,不会覆盖旧 Collector。构建产物为 x86_64、约 40 MB;universal2 属于 CORE-7。

验收数据

验证结果等级
Python 3.12 全量 Sidecar48/48E2
系统 Python 全量 Sidecar48/48E2
Swift 全量62/62E2
路由/身份/manifest 篡改测试5 个新增用例全部通过E2
候选 PyInstaller 构建Mach-O x86_64;40 MB onedirE2
候选产物冻结 API probepymobiledevice3 11.3.1;9/9;ready=trueE3
候选产物 ad-hoc 签名验证codesign --verify --deep --strict 通过E2
VitePressbuild 通过E2
真机 raw Session本阶段未执行,进入 CORE-3门禁开放

初次打包发现 PyInstaller 把 sslpsk 私有 OpenSSL 3.x 与 cryptography 所需宿主 OpenSSL 扁平化为同一路径,导致 _SSL_get0_group_name 缺符号;构建脚本现保留 sslpsk 私有 .dylibs,同时按 cryptography 实际链接路径复制另一套库。修复后候选二进制 9/9 import 通过。

阶段结论

CORE-2 完成到“可独立构建、可录制、可严格回放”的候选基座;目前证据最高为 E3。默认 Mac App 链未切换,三路真机回包与停止/重连进入 CORE-3。

冻结归档:CORE-2B 实施与验收