如何使用 FutureRestore GUI 降级 iOS 并保存 SHSH2 Blob

如今,当 Apple 试图从各个方面锁定系统时,将 iOS 降级和升级到未签名版本是一个相当大的挑战。在 Apple 签署版本时保存 SHSH2 blob 可能是未来更新或降级的门票,但并非全是黑白的。

保存 SHSH2 blob 只是成功的一半。SEP 和基带兼容性也是至关重要的一步,因为我们不能随意降级这些组件。越狱社区的开发人员想出了一个有趣的技巧来解决这个问题——使用苹果目前签署的最新 SEP 和基带组件。

这个技巧很有效,它允许许多人降级或升级到所需的版本,但它并不总是可靠的。您尝试降级到的 iOS 版本与最新 SEP 之间的距离越大,SEP 不再兼容并且降级失败的可能性就越大。

SEP 兼容性问题是由于从一个版本到另一个版本,Apple 也可能会更新 SEP。新代码、新 API、旧代码被废​​弃或重构。但是,您尝试降级的旧 iOS 期望 SEP 以某种方式运行,但现在已弃用,因此对 SEP 的多次调用可能会导致设备损坏。如果您很幸运并且 SEP 在最新版本和您的目标 iOS 之间没有太大变化,那么您的降级将会顺利进行。

什么是 FutureRestore GUI?

FutureRestore GUI 是 FutureRestore 命令行实用程序的图形用户界面。虽然 FutureRestore 的 CLI 版本有效,但许多人发现很难混淆终端和所有 FutureRestore 开关和参数。

如果您尝试使用错误的参数进行恢复,实际上可能对您的设备造成的弊大于利。不幸的是,GUI 版本也是如此。例如,如果您的设备有基带(它可以接受 SIM 卡),但您在 FutureRestore 中指定了“无基带”选项,则升级/降级将通过,但您的设备将卡在引导循环中,因为它需要你没有给的Basebandmd。

FutureRestore GUI 使降级变得更容易,因为它更易于使用。布局干净且易于理解,并且有很多检查以确保您选择了正确的选项。不必为 FutureRestore 提供正确的参数,您只需使用正确的文件(SHSH2 blob、IPSW 等)填充 GUI。它将在后台完成繁重的工作。

还有一个优点是 FutureRestore GUI 会自动为您获取正确/最新版本的 FutureRestore。GitHub 上有几十个 FutureRestore 的分支,除非你事先知道,否则很难判断你应该使用哪个版本是最新版本。

许多开发人员从 tihmstar 的原始 repo 中选择了 FutureRestore 项目,因此,GitHub 充满了过时的分叉。FutureRestore GUI 知道在哪里寻找最新的更新和维护版本,因此您不必担心使用过时或损坏的版本。

FutureRestore GUI 支持哪些操作系统?

FutureRestore GUI 非常通用。它适用于大多数主要操作系统,因此您可以在以下任何操作系统上执行 iOS 降级和升级:

  • Windows
  • 苹果系统
  • Linux(通用)
  • Debian

您可以在此处下载最新版本的 FutureRestore GUI

预编译的二进制文件可用于上述所有操作系统,但如果您愿意,也可以从源代码编译它。但是,如果您选择自己编译,则需要先安装先决条件。

如何使用 FutureRestore GUI 降级 iOS 并保存 SHSH2 Blob

要使用 FutureRestore GUI 执行降级或升级到未签名的 iOS 版本,请首先确保您拥有所有必要的东西。

降级/升级先决条件:

  • 您尝试恢复到的 iOS 版本的有效 SHSH2 blob。
  • 您尝试恢复到的 iOS 版本的 IPSW(您可以在我们的iOS 签名状态页面上找到您设备的 IPSW 文件,单击您想要的 iOS 版本旁边的蓝色版本号)。
  • 安装 FutureRestore GUI 并下载最新的 FutureRestore(通过在 FutureRestore GUI 的文件部分中按下载 FutureRestore)。
  • 用于手机的 USB 转闪电数据线。
  • 您的手机,已充满电。

一旦你有了所有这些,你需要确保你可以降级,开始。最大的挑战是 SEP 和基带兼容性,因此您需要提前检查。

要检查 SEP 和基带兼容性,请访问我们的SEP 和基带兼容性图表。如果您的设备被列为能够从最新版本升级到您想要的任何版本,那么继续进行是安全的。否则,忘记降级。

如果 SEP 和 Baseband 不兼容,则游戏结束,恢复将失败,迫使您恢复到可用的最新版本来修复手机。

一旦您确认 SEP 和基带兼容并且一切准备就绪,您还需要做一件事。您需要将 NONCE 生成器从您的 blob 设置到您的设备。这可以通过两种方式完成,但根据您当前运行的版本,它可能无法在您的设备上执行。

如何在 blob 中找到 NONCE 生成器?

SHSH2 blob 文件只不过是一个包含大量 base64 编码数据的美化文本文件。在所有 base64 内容中,您会找到如下所示的部分:

<key>generator</key>
<string>0x1111111111111111</string>

为了更容易找到它,您可以 CTRL+F / CMD + F 并搜索“生成器”。

所以我的发电机是0x1111111111111111. 您的 blob 可能包含不同的生成器,因此请确保您的设置正确。如果和我的一样,那就是0x,然后是十六个“1”。复制 <string> 标记之间的值。您需要在设备的 NVRAM 中进行设置。此步骤是必需的,否则您的 SHSH2 blob 将无法工作。

如何在 NVRAM 中设置 NONCE 生成器?

如果您有 checkm8 设备

无论设备上运行什么 iOS 版本,CheckM8 设备(iPhone 5S 一直到 iPhone X)都可以随时利用 checkm8 漏洞来设置 NONCE 生成器。

现在在 FutureRestore GUI 中,导航到选项并选中以下框:

  • Pwned 恢复
  • 设置设备随机数

并将您从 BLOB 的生成器部分复制的值粘贴到 FutureRestore 中“设置设备随机数”选项旁边的文本字段中。

确保您使用的是最新 SEP选项,如果您的设备有 SIM 卡插槽,请也使用最新基带选项。如果您的设备是没有 SIM 插槽的 iPod Touch 或 iPad,请使用“无基带”选项!

现在返回“文件”选项卡并为您尝试降级到的 iOS 版本选择 BLOB 和 IPSW 文件,然后转到“控制”选项卡。

一切准备就绪后,在 DFU 模式下连接您的设备,然后按“ Start FutureRestore ”。

如果进入 PWNED DFU 模式失败(漏洞利用并非 100% 可靠),您可能需要重复该过程,直到正确为止。

如果您有 A12+ 设备(iPhone XS / XR 或更新版本)

如果您有任何更新的设备(比 iPhone X 更新的所有设备),您将无法使用 PWNED DFU 模式来设置 NONCE 生成器。在这种情况下,请确保Pwned Args下的所有选项保持禁用状态,否则将无法启动还原。

由于您不能使用 FutureRestore GUI 来设置生成器,因此您将需要一个 NONCE Setter 应用程序。这种应用程序需要内核漏洞利用,并且可能对您可用也可能不可用,具体取决于您当前运行的 iOS 版本。

您将不得不做一些研究,看看是否有任何东西可用于您的设备。Google 是您的朋友,但如果您运行的是 iOS 15.2 或更高版本,则可以安全地假设目前没有适用于 A12+ 设备的 NONCE Setter 应用程序。

如果您的 iOS 版本存在这样的应用程序,请使用 Sideloadly 或 AltStore 安装它,并从应用程序内的 blob(与上述相同)内部设置生成器。如果应用程序确认生成器已设置,则可以安全地继续。

设置生成器后,打开 FutureRestore GUI 并使用您尝试恢复的 iOS 版本的 IPSW 和 Blob 文件填充“文件”选项卡。

在选项选项卡中,确保您使用的是最新 SEP选项,如果您的设备有 SIM 卡插槽,请也使用最新基带选项。如果您的设备是没有 SIM 插槽的 iPod Touch 或 iPad,请使用“无基带”选项!不要启用“AP Nonce Collision”。

以解锁的正常模式连接您的设备,然后按“开始 FutureRestore ”。您可以在 FutureRestore GUI 窗口中监控恢复。如果带有进度条的 Apple 标志出现在屏幕上,您就知道一切正常。这意味着恢复已经开始并且 NONCE 生成器设置正确。

现在您必须等到在 FutureRestore GUI 日志中看到以下行:

Got status message
Status: Restore Finished
Cleaning up...
Done: restore succeeded!
FutureRestore process ended.