什么是ECID?
引入这个话题的根本原因是:,苹果公司禁止你使用老版本的固件。一旦你“升级”后,就不能“降级”了。他们一般会在你选择恢复老版本固件的时候,让iTunes收到一个拒绝实施这项恢复操作的命令,从而阻止你这么做。要知道,现在的固件都是签过名的,并且使用只有你的设备才具有的、全球唯一的标识符(也就是ECID)来签名。苹果公司使用“仅此一家”的方式将对应版本的固件文件以及你的ECID一起生成一个哈希值。iTunes会收到这个哈希值,并发送给你的设备。当你的设备收到后会立即检查并核实签名(确保这个固件的确来自于苹果公司官方。加密算法非常繁杂,实践上暂时无法被破解)。如果签名匹配,才会继续进行固件恢复操作;如果不匹配,设备就会报错,恢复操作也就中止了。
不过,我们要膜拜Saurik大神(Jay Freeman),现在我们知道该怎么“忽悠”iTunes了。苹果公司只提供“活跃”版本固件的签名。因此,一旦新版本固件发布,他就停止对老版本固件的签名。这就是你为何再也无法获得3.1.2版本的签名的缘故。现在苹果公司只为3.1.3版本(iPad是3.2版本)签名,直至下个版本固件的发布。很快,3.1.3(以及3.2)版本的固件签名将会成为历史,因为苹果只会为新版本固件签名(也就是只为iOS4签名,译者注)。当前这个版本很重要。如果你没有为你的设备(ECID)准备好对应版本固件的有效签名,你就没法再恢复到那个版本的固件了。这个问题会周期性地出现(每次固件更新后都会出现,译者注)。
因此,如果有一种机制,能够保存这个签名,我们就能绕过苹果公司而随意恢复各个版本的固件。如果你的设备越狱了,使用cydia,你的SHSH文件就可以保存好了。反之,如果你的设备没有越狱或者当前未能越狱,那真是天大的不幸,因为cydia只能越狱后才能使用。
ECID,即Exclu sive Chip ID,就是iPhone3GS/iPhone4的身份证号,每一个iPhone3GS/iPhone4都有自己的独特的ECID。有了这个ECID,就能唯一确定一部iPhone。而ECID和我们按手机*#06#得到的序列号不太一样,虽然都能唯一确定一部手机。ECID是iPhone的唯一编号,而后者则只是针对iPhone的通讯模块的唯一编号。
SHSH实际上是ECID+iOS某个特定版本加起来行程的一个特征码。对于一部iPhone 3GS或是iPhone 4,想升级到某一版本,就需要到苹果的激活服务器去下载一个文件,来判断这个版本针对这部手机是否合法。而这个文件就是xxxx.shsh。
这个文件对与我们越狱十分重要,一定要将针对每个iOS版本的SHSH文件备份好,才能在某天苹果不让我们恢复到这个版本时候,自行搭建认证服务器,然后恢复老的、有漏洞的版本来越狱。
再啰嗦一句,ECID和SHSH的概念仅仅适用于3GS及其以上版本,iPhone一代和二代就不需要考虑了。
如何备份SHSH目前主要有两种方法。一种是手机越狱了有了Cydia,进入Cydia首页就能看到备份SHSH的内容(不过是英文的)。另外就是通过TinyUmbrella这款软件。目前这款软件已经做得很出色了,iPhone连上电脑,就能够自动读取ECID编号,然后从Cydia或是苹果官方获取特定版本的SHSH。
具体教程及TinyUmbrella软件下载点此查看。
关于固件的恢复,也就是iOS的降级,我们仍然需要使用TinyUmbrella这款软件。导入相应的SHSH后,即可在自己本地的电脑上模拟苹果的认证服务器,也就可以恢复被苹果禁掉的固件了。