保存 SHSH 的三种方法以及浅谈 OTA 升级

本文作者为 @iSty1e,原文地址《怎么保存 SHSH 和浅谈 OTA 升级》。

一直以来,很多人对 SHSH 到底是什么心存疑惑,还有相当一部分人对使用什么工具和如何保存 SHSH 更是摸不着北,还有,很多人对 OTA 升级有什么影响也是模模糊糊。

关于 SHSH 的第一个问题,越狱指南成员 @Geek大大 曾经做过一个相关视频 [1],而且 @TalkJB 也专门有一期讲解 SHSH [2],第二个问题,下面会做一个汇总,而 OTA 到底是否是“致命”的,本文也会略述一二。

SHSH 的保存

保存 SHSH 的时机,必须是 Apple 还没有关闭其验证之前。比如今天,Apple 早已关闭了 6.0.2 及之前的 SHSH 验证,假如你以前没有备份过之前的 SHSH,那么你现在无论用什么工具都白搭。

对于 SHSH 的保存,大致有以下几种工具和方法:

1.  TinyUmbrella

操作很简单,连接设备至电脑,打开 TinyUmbrella,左边选择你的设备,右边界面直接点击 Save SHSH 即可。如果没有备份到,可以将 Advanced 中的 Request SHSH From Cydia 取消勾选,保存路径可以自定义。

three-ways-to-save-shsh-and-briefly-talk-ota-updates-1

TinyUmbrella 保存的 SHSH 大小大概是 4-6 KB。

TinyUmbrella 的优点就是,即使你的设备不越狱或者设备还不能越狱(比如 2 月 4 日之前的 iPhone 5、iPad Mini 等),也可以保存 SHSH,当然了,前提是 TinyUmbrella 已经支持某设备才行。而有的时候碰到无法备份 SHSH 的情况,一般来说就要等待它的新版本了,比如 TinyUmbrella-06.10.00 的时候,有些 iPhone 4 就无法备份(有的就可以,说明软件没有考虑全面,漏掉了一些型号的支持),而更新到 06.10.02 的时候依然有的设备无法备份,只能使用最后更新的 06.10.02a 版本,此时不要慌,越是心急越容易出问题。

至于出现闪退、无法备份 SHSH 等问题,请参考越狱指南博文《iOS 6 和 TinyUmbrella 常见问题汇总》[3]。

TinyUmbrella 备份 SHSH,设备无需越狱。

2.  Cydia

如果你的设备处于越狱状态,那么当 Cydia 支持最新固件的 SHSH 保存时,打开 Cydia 让其运行并加载完毕后,即可将 SHSH 自动备份至 Cydia 服务器。整个过程环保无污染。

比如之前,Cydia 还没开放 6.1 的 SHSH 备份,所以无论怎么刷新 Cydia 都没有 6.1 的 SHSH,而现在,你打开 Cydia 后就会自动备份了。

3.  redsn0w

还有一种 SHSH 提取和保存的方法,就是使用 redsn0w,前提是需要提前下载好对应固件。

操作步骤略多,但很简单。

  1. 连接设备至电脑,打开 redsn0w,依次选择 Extr – SHSH Blobs – New。
three-ways-to-save-shsh-and-briefly-talk-ota-updates-2
  1. 此时会让你选择一个固件,比如你要提取和保存 6.1 的 SHSH,那么就选择你对应设备的 6.1 固件。
three-ways-to-save-shsh-and-briefly-talk-ota-updates-3
  1. 这时 redsn0w 会自动提取 SHSH,提取过程很快,几秒钟的事儿,提取完成后会提示你“Submit the 1 blob file to Cydia?”(是否将这个 SHSH 上传至 Cydia 服务器)其实到这里就已经提取完毕了,即使不上传也无碍,但是上传了总是多一份保险。
three-ways-to-save-shsh-and-briefly-talk-ota-updates-4

提取出来的 SHSH 在电脑上储存路径是(Win 7 系统下)C:\Users\用户名\AppData\Roaming\redsn0w\shsh,你可以复制到其他地方存放。

redsn0w 保存的 SHSH 大小大概是在 20 KB 以上。

如果你提取了多个 SHSH,也可以将它们一起上传至 Cydia 服务器,选择 Extra – SHSH Blobs – Submit,可以选取多个 SHSH 文件。

redsn0w 提取 SHSH 同样不需要设备必须越狱。

之前还有其他备份 SHSH 的工具,不过目前主流的工具及方法就这几个[4]。

浅谈 OTA 升级

什么是 OTA 升级?The iPhone Wiki 对它的解释是

OTA Updates (Over-the-Air Updates) were introduced with iOS 5. The device contacts mesu.apple.com to check for updates. The updates are delivered in plain unencrypted ZIP files.

OTA 升级是 Over the Air 升级的缩写,iOS 5 时被推出。设备将会连接 mesu,apple.com 来检查更新,更新会通过一个普通未加密的压缩文件来实现

前几天,如果你关注越狱,你肯定看到了升级 6.1 的时候不要使用 OTA 升级的提醒,那么 OTA 是不是就一定是“致命”的呢?

我们知道,每台设备都有一个唯一编号,比如上面提到的 SHSH,你无法使用别人保存的 SHSH 来降级或恢复你的设备就是这个道理。

当苹果设备出厂的时候,一般都会预装最新版本的固件,但这个固件都有些缺陷,跟你 iTunes 恢复或升级的固件并不完全一致,它识别出的编号跟设备的唯一编号是不一样的,所以 OTA 升级后系统识别出的编码还是跟设备本身的不同。当然了,这对于一直使用最新固件的人毫无影响,正常使用没什么两样,而且,OTA 升级并不影响正常越狱和使用,但是当越狱后出现了不可恢复的后果想恢复固件的时候,就会出现一些问题。所以,OTA 并非致命,相对于 iTunes 升级/恢复来说,更新快是优点(因为只更新一部分,并非固件本身那么大,比如 iPhone 5 6.1 固件大小是 989 MB,而 OTA 只需要更新 107 MB 即可)。

这么说你可能看的有点晕,我从几个简单的情况来举例说明:

  1. 我的设备从买来后一直没用 iTunes 升级过,都是用的 OTA 升级,最近又使用 OTA 升级到了 6.1,并且每个版本的固件都用小雨伞备份过 SHSH。

分析

  • 不越狱:没有任何影响,尽情使用即可(以下情况均是如此,不再提及)
  • 想越狱:对越狱的过程同样没有任何影响(以下同理)

但是,你保存的 SHSH 是无效的,任何工具保存下来的 SHSH 都是无效的,因为此时你设备识别出的编号并非实际编号,换句话说,你备份的 SHSH 证书相当于设备的假身份证,所以,将来苹果发布了新固件,并且关闭了 6.1 的验证,碰巧你的设备突然发生故障,那么你无法平级恢复到 6.1,当然也不能降级到 5.1.1,即使你有 SHSH,即使有工具支持设备的降级,因为 SHSH 是无效的,这时就只能升级到最新固件,并等待下一次越狱工具的发布。

补救方法:用 iTunes 恢复一次 6.1,再次保存 SHSH,这时的 SHSH 就是有效的。(以下如果想补救的,同理)

  1. 我的设备买来的时候是 5.0.1 固件,我 OTA 升级到了 5.1.1,然后又 OTA 升级到了 6.1,昨天用 iTunes 又恢复了一次。同样的,每个版本的 SHSH 都有保存。

分析:这个情况下,你只有 iTunes 恢复之后保存的 SHSH 才有效,即只有 6.1 的 SHSH 是有效的,以后可以平级恢复 6.1 或降级至 6.1,比如发布了 7.0 固件时。

  1. 我的设备买来的时候是 5.0.1 固件,我用 iTunes 升级到了 5.1.1,然后又 OTA 升级到了 6.1。

分析:道理同上,只有出厂时预装的固件才是不完整,SHSH 才是无效的,只要使用 iTunes 恢复过一次,之后即使使用 OTA 升级,SHSH 也有效,但最好还是越狱前用 iTunes 完整恢复一次为上策。

总结

总的来说,当你拿到新设备后,最好使用 iTunes 完整的恢复一次固件,这样,万一你哪天想玩越狱的时候,可以直接使用备份好的 SHSH。

而无论你是否是 OTA 升级到6.1的,这一次越狱完全可以直接越狱,使用上没什么不同,OTA 的缺陷就是你无法备份到“有效”的SHSH。

所以,假如:

  1. 你不怎么依赖越狱
  2. 越狱也是尝尝鲜,有新固件发布马上升级

那么你 OTA 升级也是可以使用越狱的,是否使用 iTunes 恢复完全看个人,而假如你还想以后平级恢复或者降级至 6.1,那么就用 iTunes 彻底的、完整的恢复一次吧。

拓展阅读

[1]  了解 SHSH

[2]  TalkJB 第 012 期:SHSH 就是后悔药

[3]  iOS 6.1 和 TinyUmbrella 常见问题汇总

[4]  【教程】用iFaith保存5.x的SHSH文件并降级        【iSHSHit】备份提取 SHSH 文件并不难