Gate F0 · Batch A · Static evidence only
A 批次已完成:技术资料可用,真机阶段暂不进入
2026-09-01 用户已批准执行 Gate F0。本轮按计划只执行 A 批次:冻结当前工具与工程基线,审查 pymobiledevice3 交付边界,盘点 Host 和可控 Fixture。未枚举设备,未启动 tunnel/DVT,未运行 xctrace 录制,未使用 PerfDog 账号。
Verdict
结论与停止点
可继续
完善静态清单、SBOM/合规包设计、实验 manifest 和设备操作协议。
当前暂停
设备枚举、安装 Fixture、DVT/xctrace/PerfDog 采样、任何对外 App/DMG 分发。
Frozen baseline
静态基线
| 项目 | 本轮证据 | 判定 |
|---|---|---|
| Perfowl | 31fef6d(本报告生成前基线) | 已冻结 |
| Codesign4QC | 0dc712c;工作区存在无关 .DS_Store 改动,本轮未修改 | 计划中 d75c729 已过时 |
| Host | Intel x86_64、4 核、16 GiB;macOS 26.5.1(25F80) | 仅能充当 H3 |
| Xcode | Xcode 26.6(17F113);xctrace 输出 16.0(17F113) | 版本字段需原样保留 |
| Python / pymobiledevice3 | Apple Python 3.9 用户环境;pymobiledevice3 4.21.3,47 条直接 requirement 元数据 | 可实验,非产品锁文件 |
F0-00 · License and delivery
GPL-3.0 交付门禁
| 决策项 | Perfowl 要求 | 当前状态 |
|---|---|---|
| 进程边界 | Mac App 不链接、不 import pymobiledevice3;以单独 Sidecar 进程通过 stdin/stdout 的版本化 JSONL 通信 | 架构已决定,尚未实现 |
| 版本与修改 | 锁定精确版本/commit/依赖;修改必须留变更记录和可重建源码 | 当前只证明 4.21.3 |
| 合规包 | 应用内可见 LICENSE/NOTICE/SBOM,并提供精确对应源码、依赖锁、补丁与构建/安装脚本 | 未建立 |
| 用户权利 | 不以 EULA 或技术措施限制用户对 GPL Sidecar 行使许可权利;设计可替换/调试路径 | 待产品与法务评审 |
| 闭源边界 | 单独进程和管道通常支持“独立程序”分析,但还取决于交换语义是否过度紧密 | 必须取得专业法务结论 |
F0-00 决议:内部实验仅使用现有本地 4.21.3,不对外发布;M0 只能设计进程与协议边界,不开始正式 App/DMG 包含与分发。对外交付前,上表合规包、EULA 检查和专业法务签字缺一不可。
Fixture inventory
可控 App 候选审查
| 能力 | 已有 | F0 缺口 | 状态 |
|---|---|---|---|
| CPU | 单后台 worker | 缺 idle/单核/双核/短峰值的固定时长场景和机内 Marker | 需扩展 |
| Memory | +10 MiB、全部释放 | 缺固定平台、可重复自动阶梯和内存压力/警告事件 | 需扩展 |
| FPS/Stall | 30/60/120 Hz 请求;50–250 ms Stall | 请求频率不等于实际呈现;缺固定帧事件、GPU 压力与前后台脚本 | 部分可用 |
| Network | 单次 URLSession 请求 | 缺本地固定字节服务、上传/下载/短连接/长连接和误差对账 | 不足 |
| Lifecycle/Crash | 可由外部结束并重启 | 缺进程 generation Marker、可控 Crash、日志与后台转换 | 不足 |
验证边界:xcodebuild -list 可识别 target/scheme,但扫描到本机无效 provisioning profile 警告;本轮没有构建、签名、安装或真机运行,因此不将“可列出工程”写成可运行证据。A2 商店 App 与 A3 高刷游戏样本也尚未指定。
Resource matrix
B 批次进入条件
| 资源 | 当前 | 进入 B 前需要 |
|---|---|---|
| H1 主 Host | 当前仅有 Intel Host 证据 | Apple Silicon Mac + 目标 macOS + Xcode |
| H2 兼容 Host | 未定义 | 确认最低 macOS 与第二台 Host |
| H3 Intel | 当前 Host 可作候选 | 确认首版是否仍为 Universal 分发 |
| D1–D4 | 未枚举、未连接 | 提供允许操作的设备/iOS 列表,以及 Developer Mode、镜像挂载、tunnel、xctrace 权限 |
| A1 | 有部分可用 Fixture | 批准完善实验场景,然后单独构建/签名/安装 |
| A2/A3 | 未指定 | 各指定一个商店 App 和可重复的 60/120 Hz 样本 |
| PerfDog | 未读取账号会话 | 官方文档地址、已登录客户端/浏览器窗口和允许的只读对照范围 |
Evidence ledger
本轮证据与局限
| 证据 | 结果 | 等级 |
|---|---|---|
| Host/Xcode/xctrace/Python/pymobiledevice3 版本命令 | 成功,已脱敏记录 | E1 |
| Codesign4QC 两架构工具、嵌套 LICENSE 与 SHA-256 | 存在,但不等于完整分发合规 | E1 |
| PerformanceProbeFixture 源码/Plist/工程与 4 项 JSONL 测试 | 源码可读,Plist 通过,4/4 测试通过 | E1 |
| Fixture 真机构建/运行 | Not Tested | E0 |
| Route、CPU、Memory、FPS、Network、xctrace 并发 | Not Tested | E0 |
Next approval
下一步
本轮只新增和修订 HTML 文档,没有创建实验脚本、修改 Fixture、开发 Mac App/Sidecar/后端/Web,也没有向第三方上传任何文件。
依据
- Perfowl Gate F0 真机能力与指标校准计划 v1 — A–E 执行顺序、证据等级与停止条件。
- Codesign4QC 性能采集专项分析 — 参考实现边界、DVT、Session 与 fixture 背景。
- pymobiledevice3 官方仓库 — 项目明示 GPL 3.0 和当前命令行/Python API 定位。
- GNU GPL FAQ · Mere Aggregation — 独立程序、管道/socket/命令行和交换语义的判定边界。
- GNU · A Quick Guide to GPLv3 — 传递 object code 时对应源码交付的核心要求。
证据说明:开源官方文档和 GNU 资料是合规设计输入,不是针对 Perfowl 具体发行形式的法律意见。本项目的对外分发结论仍需专业法务基于实际代码、协议和 EULA 评审。