如何在 iPhone 上安装未签名的 iOS 版本?

How can I install an unsigned iOS version on an iPhone?

我在开发过程中使用多个使用旧 iOS 版本的设备在实际硬件上测试我的应用程序(一些使用相机或某些 Core Image API 的功能在模拟器上不起作用)。我的最后一个应用程序很快就会放弃对 iOS 11 的支持,因此我想将运行 iOS 11 的 iPhone SE 升级到 iOS 13。

IPSW 文件可以从 ipsw.me 等网站下载,但显然没有安装此类升级的官方途径,因为 Apple 不再签署这些固件。有没有办法绕过这个限制?

实际上,你不能。

理论上有3种方式:

  1. 成为 Apple 员工。
  2. 破解 RSA。
  3. 在 Apple 的启动链中找到一个漏洞。

假设1和2对你来说不可行,让我们看看第三个选项。包括 iPhone 8 和 X 在内的所有 iPhone 实际上确实有一个已知的 BootROM 漏洞 - A5-A11 芯片的漏洞称为 checkm8。不过这有几个问题:

  • 该错误在 BootROM 的 DFU 部分,因此为了使用它,您必须在每次启动时将您的设备放入 DFU。您不能只“安装”一个 OS 就完事了。
  • 该错误仅影响应用程序处理器,不影响 Secure Enclave。因此,您必须修补系统以更新负责与 SEP 通信的代码,以便它与当前签名的固件一起工作,或者根本不与 SEP 通信。

现在还有另一个名为 blackbird 的漏洞 - 这次是在 SEPROM 中。它仅限于 A8-A10 芯片(包括您的 iPhone SE),并允许两种可能的解决方案:

  • Apple 的固件签名将特定版本绑定到特定设备。如果你之前在苹果发的时候保存过这样的签名,你可以利用这两个bug降级到这样的版本,然后不用越狱继续使用。
  • 如果您没有为您的设备保存这样的签名,您仍然可以通过 DFU 加载未签名的 SEPOS 固件,这样您至少可以启动旧版本。

现在自我插件:我是 checkra1n 越狱的开发团队成员,我们确实计划为上述过程实现一个合理的接口 - 但我们还有很长的路要走关闭,而不是我们的首要任务。

所以暂时:你不能安装未签名的版本。

有 3 个主要要求:

  1. 为您要恢复到的版本准备 shsh2 blob
  2. 您要恢复到的版本的 SEP 和基带与签名版本兼容
  3. 越狱设置随机数。

回答您可能有的一些问题: 如果您还没有为未签名版本保存 shsh2 blob,则无法获得。

你可以看到什么版本的 SEP 和 Baseband 与最新的兼容 here 确保你正在阅读测试分支的自述文件,而不是主分支

还有什么问题可以在r/jailrbeakdiscord里提问,大家会很乐意为你解答