越狱后 App 一开就闪退?Choicy、Shadow、vnodebypass 三层绕过完整教程

越狱之后的第一周通常是爽的:想装什么装什么,图标想怎么排怎么排。第二周开始你就会遇到一个很扫兴的问题——某个 App 打不开了。

常见表现有三种:一是打开瞬间闪退;二是弹一个「此设备已被修改,无法使用」之类的提示后退出;三是能进主界面,但一到登录或者付款环节就失败。原因都一样:这类 App 内置了越狱环境检测。

这件事需要先说清立场。App 做检测从安全角度讲是合理的——越狱设备的系统完整性确实更弱,被恶意软件攻击的概率更高。所以下面这些方法,目标是让设备在保持越狱的前提下能正常使用日常 App,不是拿来绕过什么东西。

另外给一条很实在的建议:不推荐在越狱设备上使用银行类 App 处理敏感操作。用另一台没越狱的设备来做这些事,比研究绕过方案靠谱得多。

先搞懂:App 到底在检测什么

明白检测原理,选方案就不会瞎试。目前主流检测手段大概分四类:

  • 文件系统检测:找 /Applications/Cydia.app 这类目录是否存在,或者检查 bin/bash 之类的文件。这是最老也是最常见的一类。
  • URL Scheme 检测:尝试打开 cydia://sileo:// 这类自定义协议,能打开就说明装了包管理器。
  • 注入检测:检查自己的进程里有没有被加载了第三方动态库(也就是 tweak)。这一类检测的是「插件」,不是「越狱」本身。
  • 内核级检测:直接问系统层面的信息,比如某些系统调用的返回值。这类最难对付。

关键在于:大部分 App 只用前两类。这意味着很多时候你根本不需要上「核弹」,用最轻的方法就能解决。

第一层:Choicy —— 先关掉插件注入试试

Choicy 严格来说不是「绕过工具」,它是个插件注入配置器。核心功能是让你指定某个 App 在启动时不加载任何 tweak。

为什么这招有用?因为不少 App 的检测逻辑其实很粗糙——它只是扫一遍自己进程里有没有可疑的动态库。如果那个 App 本身不需要任何插件(比如银行 App、支付 App),让它在「无插件」状态下运行,问题往往直接解决。

操作步骤:

  • 在包管理器里添加开发者源 opa334.github.io(BigBoss 默认源里也有,但开发者源版本更新更快,建议用前者)
  • 安装 Choicy,安装完成后注销(Respring)
  • 打开「设置」App,往下找到 Choicy
  • 进入 Applications,找到打不开的那个 App 并点进去
  • 打开 Custom Tweak Configuration
  • 如果只想彻底关闭注入:直接打开 Disable Tweak Injection
  • 如果只想让某个绕过插件生效:选 Whitelist(白名单),然后只勾选你要用的那个绕过插件

Choicy 的优点是轻量、几乎不会引起系统不稳定,缺点是只解决「插件注入检测」这一类问题。如果 App 检测的是文件系统,Choicy 帮不上忙。

顺带说一句,如果你用的是基于 libhooker 的越狱(Chimera、Odyssey、Taurine 这类),libhooker Configurator 能实现同样的功能,而且是原生集成在 libhooker 里的,不用额外装。但如果你用的是基于 Substrate / Substitute 的越狱(checkra1n、unc0ver),libhooker Configurator 用不了,只能用 Choicy。

第二层:Shadow —— 精细控制的现代方案

如果第一层不管用,或者 App 的检测比较刁钻,就该上 Shadow 了。

Shadow 是目前维护最活跃的越狱检测绕过方案之一,它的思路是「按规则隐藏」——由一套判断引擎决定哪些文件路径、URL、Scheme、Bundle ID 和内存地址对目标 App 不可见,然后在检测 API 上挂钩拦截。

Shadow 4.0.0 这个包由这么几个部分组成:

  • Shadow.framework:判断引擎,负责决定哪些东西要藏
  • Shadow.dylib / ShadowCore.dylib:注入入口和挂钩层,负责拦截检测 API
  • ShadowSettings.bundle:在「设置」里出现的配置面板
  • shdw:命令行工具,装在 /usr/local/bin。它的 -d 监视模式会在 App 安装或卸载时自动重建已安装 App 的规则集,也用来做规则维护
  • shadowd:arm64 的 XPC 守护进程,vnode 隐藏后端只在 iOS 15.0 到 16.6.1 上生效,其他系统上会「失败即关闭」(fail closed),不会硬撑

兼容性上,Shadow 按「通道」(lane)分发包,需要先确认自己属于哪一档:

  • Rootful legacy(iphoneos-arm):iOS 9 – 13
  • Rootful modern(iphoneos-arm):iOS 14 及以上
  • Rootless(iphoneos-arm64):iOS 15 及以上,对应 Dopamine、palera1n 这类无根越狱
  • RootHide(iphoneos-arm64e):iOS 15 – 17

安装步骤:

  • 添加开发者源 ios.jjolano.me,安装 Shadow(包 ID me.jjolano.shadow);也可以从 github.com/jjolano/shadow 下载最新版,用包管理器打开安装
  • 依赖会自动装上。但你可能需要额外添加两个源:HookKit(要求 3.0.0 或更高,来自 jjolano 的源,是 Shadow 底层的 HookKit 3 运行时);Injection Foundation(来自 PoomSmart 的源,官方标注为「建议但不必须」,作用是确保 Shadow 能正确注入某些 App)
  • 安装完成后,配置面板出现在「设置」里
  • 可以先设一套全局默认规则,再针对具体 App 添加单独配置

Shadow 的配置项非常多——这是它的优势也是它的门槛。它允许你按 App 调整「绕过的强度」,强度越高,能绕过的检测越多,但也越容易和其他插件冲突。建议从默认值开始,逐个 App 试,不行再往上调。

官方也直言 Shadow 并不保证对每个 App 都有效。如果遇到死活不行的,可以按顺序试这几招:换一个挂钩库(fishhook 是安全选项,但能挂钩的东西比较有限);用 Choicy 或 libhooker Configurator 关掉除 Shadow 之外的所有插件;改用 vnodebypass;如果是不完美越狱或无根越狱,重启回到未越狱状态再用那个 App;或者直接降级 App 版本——有些新版本的检测手段更新过了,退回旧版反而能用。

还有一条经验:不要同时开多个绕过插件,冲突的概率远高于叠加收益。

第三层:vnodebypass —— 内核级隐藏

如果前两层都不行,最后的手段是 vnodebypass。

它的做法是从内核层面把整个越狱结构藏起来,属于「核弹」级别。需要注意的是它有明显的代价:启用期间,你其他的 tweak 大部分都会失效。所以它的使用方式是手动的——你要用那个严格的 App 时打开它、点 Enable,用完回来点 Disable。

操作步骤:

  • 添加源 repo.xsf1re.kr,安装 vnodebypass
  • 如果是 iOS 14,需要先确保 libkrw 版本不低于 1.1.0(unc0ver 和 checkra1n 的默认源 Elucubratus 里有)
  • 打开 vnodebypass App,点 Enable
  • 去用需要绕过检测的 App
  • 用完后回到 vnodebypass,点 Disable 恢复插件

重要兼容性限制:vnodebypass 不支持 nathanlr 和 palera1n 越狱。另外它是内核层工具,官方标注为「自担风险」,不要在不受支持的设备上装。

其他可选方案

除了上面三层,还有几个老牌工具可以用,但它们大多有明确的适用范围:

  • A-Bypass(源:repo.co.kr):据作者说明,它在基于 libhooker 的越狱上效果更好(Chimera、Odyssey、odysseyra1n、Taurine),在 Substrate / Substitute 系的越狱(checkra1n、unc0ver)上也能用。安装后在「设置」里进入 A-Bypass,先点 Check for Updates 更新检测规则库,再按 App 逐个启用。遇到新 App 不生效时,第一件事就是回来重新检查更新。
  • Liberty Lite (Beta)(源:ryleyangus.com/repo):安装后在设置里打开 Enable Liberty,再进 Block Jailbreak Detection 勾选目标 App。
  • KernBypass(源:cydia.ichitaso.com):只适用于 iOS 12.0 – 14.2,而且在 iOS 14 的 unc0ver 上不工作,那种情况要改用 vnodebypass。同样是内核层工具,谨慎使用。

这里有个很多人踩过的坑:A-Bypass、Liberty Lite 和 KernBypass 都不支持无根(rootless)越狱,也就是 Dopamine 和 palera1n 上用不了。如果你用的是这两款越狱工具,直接跳到下一节。

无根越狱用户看这里:先用内置隐藏

如果你用的是 Dopamine 或 nathanlr,好消息是它们自带越狱隐藏功能,不用额外装插件。

Dopamine:打开 Dopamine App → 点 Settings → 点 Hide Jailbreak。等几秒钟后这个按钮会变成 Unhide Jailbreak,说明隐藏已生效。

nathanlr:打开 nathanlr App → 点 Options/Credits → 点 Toggle Jailbreak Hide State

顺便说一下,无根越狱本身在「隐蔽性」上就比有根越狱好——因为它不碰系统分区,路径结构和原版系统差别小,很多原本会触发检测的 App 在无根环境下不装任何绕过插件就能正常打开。所以无根用户遇到闪退,先试内置隐藏,再考虑 Shadow。

一个实用的排查顺序

把上面的内容整理成一条能直接照做的路径:

  • 第一步:确认越狱类型(有根 / 无根 / RootHide),这决定了哪些工具能用。无根和 RootHide 用户跳过 A-Bypass、Liberty Lite、KernBypass。
  • 第二步:如果是 Dopamine 或 nathanlr,先试内置的 Hide Jailbreak。
  • 第三步:装 Choicy,给目标 App 关掉插件注入。这一步能解决相当一部分问题。
  • 第四步:上 Shadow,从默认强度开始调,同时确保 HookKit 版本够新。
  • 第五步:确定是内核级检测的(比如某些带反作弊的联机游戏、部分金融类 App),用 vnodebypass,用完记得关。
  • 第六步:全都不行的话,考虑降级 App 版本,或者干脆回到未越狱状态使用那个 App。

还有几条通用的注意事项:

  • 屏蔽越狱检测之后,有些 App 会失去访问相册和文件的权限。这是机制决定的——隐藏得越彻底,App 能看到的东西越少。遇到这种情况,往往要在「能用」和「功能完整」之间做取舍。
  • 有一部分 App 无论如何都绕不过去。有些检测深度和风控强度很高的应用是彻底封死越狱设备的,官方文档里也写明了「部分 App 无法修补」。别在这上面浪费时间。
  • 定期更新检测规则库。App 更新检测手段、绕过工具更新规则,这是一场持续的拉锯。A-Bypass 的 Check for Updates、Shadow 的 shdw 规则重建,都是为此存在的。
  • 组合使用时优先级要分清。先 Choicy 关注入,再挂绕过插件;不要一次装三个绕过工具,冲突比叠加更容易让你陷进无限注销的循环。

最后再强调一次安全问题

绕过检测让你能用上这些 App,但它不会让越狱设备变得比未越狱设备更安全。相反,越狱后系统的攻击面确实变大了,这是事实。

所以给两条最实用的建议:涉钱的操作用另一台干净设备;越狱环境里别随便装来路不明的源和插件——很多所谓「免费插件源」本身就是最容易被塞后门的地方。这两条比任何绕过技巧都重要。

网友评论

  • 「Choicy 就够了,我这边银行 App 直接能开。」
  • 「vnodebypass 一开插件全没了,用完一定要记得关。」
  • 「Dopamine 自带的隐藏功能真好用,早知道就不折腾别的了。」
  • 「Shadow 设置项太多了,默认值先用着吧。」
  • 「支付类 App 还是用另一台手机靠谱。」

以上评论仅代表网友个人观点,不代表官方立场。