ARM完整产品冻结与兼容 ​

1. 范围与当前事实 ​

Owner授权同一AI承担方案、实现、测试和分离复核,无子代理。本批起点main a7531d12c73d60bf5c4662db1345f77f44fc119e;整体27/66,唯一当前中断唤醒率1Hz旧4/5、新正式0轮。本机ARM源码环境101条版本、147相关控制、实际44Core的18案例已通过E2;Lab开发签名和只读手机通道已核。此方案不重测历史指标、不重放旧队列、不拼接第五轮、不进入磁盘。

现有冻结脚本限制x86_64,并假定cryptography链接host动态OpenSSL、sslpsk包含私有.dylibs。本机固定ARM官方wheel的这两项均为静态OpenSSL布局,不能照搬路径,也不能为过构建换版本。未形成新完整产品、未安装;Mac Developer ID身份类别仍缺,iOS Lab开发签名可用。公证继续暂缓、内部测试限定,正式分发/GPL门开放。

2. 固定输入与实施决策 ​

  1. 版本逐条沿用原101依赖与PyInstaller6.22.3,不改现有锁、不改相邻项目。共享预检验证实际macOS CPython3.12、本机/目标架构一致、全部版本和必要Mach-O架构。ARM使用已经建立的唯一源码环境,不自动创建或下载新环境。Intel原libusb二进制SHA保持不变,不把新架构产物覆盖旧pin。
  2. ARM的libusb使用官方固定1.0.29源发布包;官方GitHub release资产声明SHA-256为5977fc950f8d1395ccea9bd48c06b3f808fd3c2c961b44b0c2e6e29fc3a70a85,645381B。先核来源/摘要再构建,单独记录架构、编译器、SDK、最低macOS13、flags、源码和builder摘要、实际输出SHA、Mach-O依赖及版本;不冒充旧Intel包。来源:官方release。此为本批有意固定的输入,不宣称最新版本。
  3. libusb在项目现有构建缓存内从源码构建,不安装Homebrew或修改系统目录。保留源码失败/输出,产物以实际版本和架构验证后才写成功收据;新建架构缓存、保留原Intel输入。复制对应许可证进候选包;不以此关闭正式法务门。
  4. 增加共享冻结输入检查器,读取实际cryptography/sslpsk本机模块及otool -L。静态布局不得注入不相关host OpenSSL;动态布局仍保留cryptography host pair与sslpsk private pair隔离。缺失半对、未支持的OpenSSL依赖或架构混合立即失败。从模块实际路径选ABI,不硬编码后缀。共享检查器输出稳定manifest和NUL参数文件,shell不eval、不拆带空格路径。
  5. 更新Core/CLI/兼容sidecar冻结和App环境检查,允许明确同架构的arm64或x86_64;Core缓存纳入环境/native/脚本输入,缓存返回前运行实际probe。不以旧缓存或可启动解释器代替完整runtime。沿用GUI现有Tools/arm64选择;ARM可选预览仍为既有ImageIO路径,不引入图像算法变化。
  6. 每个新冻结runtime执行probe/版本/帮助及本机架构/依赖闭包检查。完整App从当前Swift源码构建,使用单一私有候选输出目录(非标准安装路径,不创建并行已安装客户端)。若Developer ID类别仍缺,只保留内部构建候选和明确签名状态;不以ad-hoc/Apple Development候选宣称正式Mac交付,也不自行豁免安装门。具体验证后再提出确有必要的Owner动作。

3. 轻量与效率门 ​

关键路径:固定输入验证 → libusb一次源码构建 → 三个runtime串行冻结 → Swift/App组装 → 独立包内检查。预检O(101版本+有限本机模块字节),冻结及完整树核验O(实际输入/输出字节);流式SHA、复用唯一环境/缓存,无常驻进程、无高频手机轮询或新采集。PyInstaller内部图处理按真实锁测量,不虚构复杂度上界。

4. 验证与交付判据 ​

共享检查器必须反控:错架构、版本不符、缺动态半对/不支持链接、libusb摘要错、缓存输入漂移均拒绝;静态ARM和动态Intel声明分别验证。不能在无Intel输入的新机伪称Intel真运行回归通过。

实际构建只证明E2;完整runtime需实际probe成功,独立核ARM闭包、无host绝对动态库依赖、关键native加载及包内来源一致。新Mac标准客户端只允许后续空闲退出后同址安装。签名类别/安装与GUI/真实参考开销、配方资格、新诊断、手机原件保全归位/实际容量收据仍分别开放。新正式独占attempt另写当前Canonical后才新五生命/Session,每轮600秒冷却、首失败停。

批次完成追加实际文件/偏差/命令/资源/失败,生成不可变HTML快照与时间线/门禁联动,窄提交双推并按实际收据通知;网站资源/认证缺口单列,不伪称发布。指标计数保持27/66。

Implementation Update · 2026-10-18 · 首批实现 ​

已按方案增加固定native输入清单、离线ARM libusb builder和共享冻结预检;预检核101版本、固定冻结器、实际Mach-O/静态或动态OpenSSL布局,并将已安装源/native/metadata内容摘要纳入缓存。Core/CLI/兼容sidecar和App架构检查已接入,Intel原libusb SHA保持不变;ARM不自动创建新环境。动态同名OpenSSL隔离、带空格参数与缓存内容漂移增加反控。当前实现尚待首次软件控制和实际源构建/冻结验证,不能称已交付;私有原件使用独立arm-product-freeze-01目录。

Review Decision · 2026-10-18 · 缓存路径稳定性 ​

首个Core/CLI实际冻结均通过。分离阅读发现CLI与兼容sidecar沿用的shasum原始输出含调用脚本路径:相对路径执行后,App用绝对路径调用会造成无内容变更的缓存失效。先统一按固定文件顺序仅聚合内容摘要,再用新CLI构建与跨路径缓存调用验证;保留首构建日志,不以手工改写成功key跳过验证;相同源码的可重建冻结缓存由builder替换,首份二进制SHA未独立封存,不能声称其产物已归档。该修订不影响runtime产品语义;编译/冻结预算不变。

Diagnostic Decision · 2026-10-18 · 冻结闭包检查器的symlink上下文 ​

首次独立扫描在CLI的PIL相关依赖上报告13条未解析,保留失败JSON与日志。实际这些根目录dylib是指向包内PIL/.dylibs的symlink,检查器对别名路径计算@loader_path,没有先正规化真实模块路径;不能因此宣布产品依赖缺失。现有CLI的只读webinspector --help实际exit0且dyld加载日志包含PIL imaging,调用手机0。下一新R2保留每个真实模块的load/rpath、正规化路径和精确包内解析,仍拒绝包外/缺文件/错架构;不改产品或通过注入host搜索目录规避。PyInstaller6的POSIX包需要保留symlink;本批ditto和cp -R沿用保留链接方式。来源:官方说明。

Candidate Decision · 2026-10-18 · 私有Mac开发签名候选 ​

三个runtime闭包R2通过:全部实际Mach-O为arm64,包内动态依赖解析成功,Core89个已冻结模块与当前源码编译的code object逐项相同;CLI版本及兼容sidecar帮助通过。首个闭包检查器失败保留,不是产品依赖失败。跨相对/绝对路径缓存调用三份执行文件SHA/mtime均不变。

下一将完整Swift/App组装到独立私有candidate,内部build190;使用Owner指出且已证明私钥可用的现有Apple Development身份签候选并严格验证。此动作仅产生可审查内部候选E2,不写标准安装路径、不启动GUI或手机,不将开发签名替代Developer ID正式交付要求。完成独立解包/包内核对后,若仍只有开发身份,必须明确保留标准安装门并向Owner说明需要的确切决定。公证继续暂缓。

Packaging Diagnostic · 2026-10-18 · 证书提取参数 ​

完整App已开发签名并严格验证。首次私有容器脚本在提取实际leaf时把--extract-certificates的可选prefix写成分离参数,被codesign当成待读文件而exit1;尚未创建DMG,不据此判断签名失效。原脚本和失败日志保留。下一仅用等号形式传prefix,以新R2日志复用已经核定的App,核实际leaf后再建容器;不重建App、不改证书或提高预算。

Validation Update · 2026-10-18 · 实际结果与分离复核 ​

实现范围与偏差 ​

实际修改五个脚本:Core/CLI/兼容sidecar冻结、App架构/许可证组装、旧独立Core归档脚本的新增builder输入复制。新增固定native输入JSON、离线libusb builder、共享冻结检查器和15项软件反控。原101版本、pymobiledevice311.3.1、冻结器6.22.3、Intel libusb原SHA不变;没有修改Swift/Core/Python指标公式、来源或阈值。当前ARM仍使用既有ImageIO预览路径。

相对首稿补充两项复核修正:CLI/兼容sidecar缓存不再包含脚本调用路径;闭包诊断使用symlink真实模块位置计算loader路径。旧独立Core归档仍为Intel受限历史命令,本批只补齐其新增输入文件,不声称已在ARM执行该旧发行流程。实际Mac候选采用Apple Development签名,Developer ID要求仍未满足;不将构建产物当正式交付或指标通过。

资源与完成量(E2) ​

检查 实际耗时 退出/监督峰值RSS 结论
15项输入/布局/错架构/错版本/摘要/缓存漂移反控 0.092秒 29,229,056B 通过,无手机
官方libusb源码下载/SHA核同 2.748秒 26,886,144B 645381B、TLS验证通过
ARM libusb源码构建/实际加载版本 8.701秒 78,069,760B 通过,未改系统安装
Core首次冻结/native probe 21.569秒 252,313,600B 通过
CLI首冻结 / 路径缓存修订后新冻结 36.938 / 35.959秒 309,788,672 / 333,103,104B 两次均通过,首日志保留
兼容sidecar冻结 13.959秒 224,821,248B 通过
CLI / Core / 兼容sidecar跨路径缓存 1.715 / 1.970 / 0.701秒 70,467,584 / 75,218,944 / 39,075,840B 三份执行文件SHA及mtime均不变
独立闭包R2、字节码与实际命令 4.912秒 100,859,904B 通过
完整Swift/App build190及开发签名 47.775秒 1,205,633,024B 通过,源码pins无漂移
DMG创建/开发签名/独立只读挂载全树核同R2 17.553秒 66,371,584B 通过,已正常卸载
签名后App包内闭包与实际命令 3.071秒 105,742,336B 通过

冻结预算300秒/1024MiB、完整App300秒/1536MiB均未超;常规probe/缓存仍在192MiB内。冷/热缓存CPU秒分别为Core13.784/1.924、CLI26.753/1.038、兼容sidecar12.985/0.674。旧Intel限制路径没有在本机完成的有效基线,不能编造旧路径成功耗时;冷/热是本实现缓存成本对比。新签名后三runtime共318个Mach-O均arm64、唯一实际文件约222,165,207B;系统I/O峰值、设备采集吞吐与GUI响应未测,记unknown,不能从构建速度推断指标性能。

独立分离复核未采用“脚本exit0”作为全部证据:实际解析318个Mach-O及包内动态依赖(包外依赖仅允许系统路径),直接读取冻结PYZ的89个Core模块,与当前源码独立编译code object逐项相同;四份数据合同逐字节核同。签名后包内Core真实native probe、CLI11.3.1和兼容sidecar帮助均成功。App和DMG严格签名验证、App实际leaf与所选现有身份核同;DMG只读独立挂载后12931项文件/链接全树核同。完整App的GUI尚未启动;未安装、未触及手机。

失败保留与限制 ​

实际产物、复现与下一步 ​

私有产物位于~/Perfowl-NewHost-Recovery/20261018-arm-product-freeze-01/Perfowl-1.0.0-190-arm64-internal.dmg及相邻.sha256,116,261,561B,SHA-256:1f0c204b8d86a66dabea636e25f186fdf7dd31b48a0e609c24786261bf8c5aed。实际App、安装前全树、来源pins、各轮监督/构建/签名日志、独立检查器R1/R2和挂载核同均留私有目录;真实签名身份不入Git。

复现使用已核的本机环境(明确设置PERFOWL_CORE_PYTHON和PERFOWL_PYINSTALLER_PYTHON为现有ARM环境),按顺序执行:build-native-libusb.py --source 已核官方源包 --output MacApp/.sidecar-build/libusb-arm64、build-sidecar-core.sh、build-pymobiledevice3.sh、build-sidecar.sh、build-app.sh。App须明确新私有PERFOWL_DIST_DIR、build190、jobs1和私有选择的签名身份,并由既有finite guard监督;未经同意不要写标准安装路径。独立15反控:python3 -B -m unittest discover -s MacApp/scripts/tests -p test_freeze_inputs.py -v。

下一阶段仍为当前中断1Hz准备:完成Mac标准安装签名类别决定/GUI资格;直接保全需要归位的手机旧原件,真实容量规划含新参考资格/开销/诊断与五轮;核配方,另落新独占attempt与真实容量收据,再完整五新生命/Session和分离复核。整体27/66、旧4/5、新正式0轮;不重测历史指标、不进入磁盘。交付状态partial,提交/双推/通知按独立实际收据报告。本批增量快照。