vphone-cli 如何选择正确变体:根据研究需求挑选 firmware variant 的完整方法论
2026/9/15 9:55:24 网站建设 项目流程

vphone-cli 如何选择正确变体:根据研究需求挑选 firmware variant 的完整方法论

【免费下载链接】vphone-cli项目地址: https://gitcode.com/GitHub_Trending/vp/vphone-cli

vphone-cli是一款基于 Apple Virtualization.framework 启动「虚拟 iPhone」的开源命令行工具。它通过 PCC 研究 VM 基础设施,让你下载、打补丁并还原固件。其中**选择正确的 firmware variant(固件变体)**是整个流程里最关键的决策——lessregulardevjbexp五种变体对应不同的安全绕过强度,选错会导致启动失败或功能缺失。本文给出一套可落地的选型方法论,帮你快速匹配研究需求。

一分钟看懂 5 种 firmware variant

vphone-cli 通过--variant(短参数-V)选择固件变体,安全绕过能力逐档递增。先看全景对照表:

变体启动链补丁CFW 阶段核心能力适用场景
less4 个2 阶段无补丁——保留 iOS 全部安全缓解需要最接近真机的基线环境
regular42 个10 阶段AMFI / SSV / Img4 / TXM 绕过常规研究、调试
dev53 个12 阶段+ TXM 权限 / 调试绕过需要调试器、开发者模式
jb113 个14 阶段+ 完整越狱(Sileo、TrollStore)越狱生态研究
exp141 个18 阶段JB 超集 + 反 VM 检测补丁对抗虚拟机的深度实验

💡记忆口诀expjb超集——JB 打过的补丁 EXP 全都有,额外只多一套「实验性反虚拟机检测」补丁,且不会污染其他变体。

决策树:三步锁定你的 variant

第一步:你的研究是否需要越狱?

  • 不需要越狱→ 走lessregulardev
  • 需要越狱(装 tweak、用 Sileo、跑 TrollStore)→ 直接选jbexp

第二步:是否需要调试器 / 开发者模式?

  • 需要 lldb 附加、开发者模式→ 至少dev
  • 不需要regular即可,补丁更少、更接近原生行为

第三步:是否要做反虚拟机检测实验?

  • 需要绕过「我是不是 VM」检测(如kern.hv_vmm_present)→ 选exp
  • 不需要→ 停在jb

各变体技术差异速查

less:最干净的基线

只打 4 个启动链补丁,不修改TXM / Kernel,保留 iOS 所有安全缓解。适合做「补丁前 / 补丁后」对比研究的对照组。

regular:日常研究的甜点区

42 个补丁覆盖 AMFI、SSV、Img4、TXM 绕过,能让固件正常启动并进入可用状态,是大多数人的默认选择(也是 CLI 的默认值)。

dev:加上调试能力

regular基础上启用TXMDevPatcher,额外绕过 TXM 的 get-task-allow、调试器权限与开发者模式,方便 lldb 附加。

jb:完整越狱

113 个补丁,注入KernelJBPatcher+IBootJBPatcher,首次启动自动安装 Sileo 与 TrollStore,是绝大多数越狱研究的起点。

exp:反虚拟机检测实验

JB 超集 +KernelEXPPatcher(重命名hv_vmm_presentsysctl)+ DeviceTree 身份改写(伪装成 D47AP / iPhone17,3)。适合研究如何隐藏「这是虚拟机」这一事实。

如何传入 variant:两条命令路径

一键流程(推荐新手)

vphone-cli vm create myphone -V jb

vm create会自动串起「下载 → 打补丁 → DFU 还原 → CFW 安装 → 首次启动」全流程,-V后面接变体名即可。

手动分步流程(需要精确控制时)

vphone-cli vm new myphone vphone-cli fw prepare myphone --iphone-version 26.1 vphone-cli fw patch myphone --variant jb # 在这里指定 variant

变体选项定义在 VPhoneCLI.swift 中,枚举本身在 FirmwarePipeline.swift:

public enum Variant: String, Sendable { case less case regular case dev case jb case exp }

变体如何影响补丁流水线

固件补丁按固定顺序执行:AVPBooter → iBSS → iBEC → LLB → TXM → Kernel → DeviceTree。变体在每一步都会切换不同的 Patcher 组合:

  • TXM 步骤regular用基础TXMPatcherdev/jb/exp换成TXMDevPatcher(增加权限 / 调试 / 开发者模式绕过)
  • Kernel 步骤jb先跑基础补丁再叠加 JB 扩展;exp在 JB 之上再叠加实验性补丁
  • DeviceTree 步骤:仅exp追加身份属性改写(dtIncludeIdentity = variant == .exp

这套逻辑集中在 FirmwarePipeline.swift 的组件列表构建中。每个组件的逐条补丁对照,可在 research/0_binary_patch_comparison.md 查到,那里用表格列出了每个补丁在 Regular / Dev / JB 下的启用状态(Y / -)。

常见选型误区

误区正确做法
「补丁越多越好,直接 exp」exp 的反检测补丁可能引入不稳定,按需选择,研究常规问题用 regular/jb
「想调试却选了 regular」regular 不含调试绕过,需要 lldb 请至少用 dev
「越狱失败怪固件」先确认 SSH 账号:jbmobile@(密码alpine),regular/devroot@
「一次选错无法改」fw patch <name> --variant <v>重新打补丁即可切换

验证你的选择是否正确

启动后通过 SSH 进入验证:

  • jb / expssh -p 22222 mobile@<vm-ip>(密码alpine
  • regular / devssh -p 22222 root@<vm-ip>
  • 所有变体 VNCvnc://<vm-ip>:5901

能正常登录、系统不闪退、且具备你期望的调试 / 越狱能力,就说明变体选对了。更多环境版本兼容矩阵见 README.md 中的 Tested Environments 表格。

小结

  • 要基线对比less
  • 要日常研究regular(默认)
  • 要调试器dev
  • 要完整越狱jb
  • 要反虚拟机检测实验exp

记住「补丁逐档递增、exp 是 jb 超集」这两点,配合三步决策树,你就能在 10 秒内为任意研究需求锁定正确的 firmware variant,避免反复试错浪费时间。

【免费下载链接】vphone-cli项目地址: https://gitcode.com/GitHub_Trending/vp/vphone-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询