(编译此内容仅供网友参考,不确保其教程的完整、可靠,且不承担任何法律责任)
你需要的工具:
首先,你得有一部iPhone。你需要开启SSH,还得把LaunchDeamon.plist去掉。
然后,还要有能打开扣榫的工具,比如弹吉他用的弹片。
接下来是一只电烙铁,不会很贵。
一段上好的漆包线,我用的线是从废旧小马达上拆下来的。
一个开关,越大越好。
红牛饮料,因为整个过程需要精神高度集中,没有红牛不行。 (^_^)
先打开iPhone,从背后的黑色部位开始,然后拧下三个螺丝,最后取下铝制的外壳。把链接电话和外壳的电线都去掉,然后就不要移开什么玩意儿了。要是觉得还有点不安全,可以试着去掉电池,呵呵。最终应该是这样子:
接下来是最困难的一步了,一定要小心。图中红线位置就是A17线,为了能让安全芯片觉得Flash闪存地址已经被清空,我们需要把它牵引出来。用工具把外表的涂层刮开,焊接一根线上去,但千万不要把A17线弄断了。然后在箭头所指的地方焊接上另外一根线。
把两根线连接到开关上,这一步算是完成了。
用万用表测试一下,看看刚才焊接上去的两条线是不是接地短路了,或者是连接了一起。然后确认一下开关是关着的。打开你的iPhone,如果没有冒烟就证明之前的操作都是正确的。
现在使用Minicom来做一些软件上的工作,连接到tty.baseband,发送一些指令。应该会返回一个OK指示。接下来打开开关,baseband应该会停止返回信息,就算把开关再关掉也不会有信息返回了。
再次确认一下你的开关是关闭的,打开另外一个SSH窗口,并输入这个指令“bbupdater -v”,这样就可以把bbupdater从闪存里去除掉。baseband将会重新启动,minicom也会开始工作。
如果能够做到这点,那么就差不都证明了你的焊接是正确的。接下来,我们来真正地解开iPhone。
如果失败了也不要灰心,有办法恢复,不然我手中这台iPhone早就变砖一百遍了。只需把它和USB连接起来,它会自己启动。然后用编译好的minicom和termcap来恢复即可,你也可以直接下载编译好的程序。
现在确认开关是关上的,你的baseband运转一切正常。用NORDumper软件来备份NOR,为iPhone留一条紧急出口。你也可以解出iPhone的Firmware,稍后会用到。
要用到第一个工具了,iEraser。它会把当前modem的Firmware擦除掉。不用担心,这个Firmware可以随时用bbupdater恢复。让我们来分析一下bootrom检查的原理,bootrom读取一下四个地址:OxA0000030、0xA000A5A0、0xA0015C58和0xA0017370,这些地址所有的值必须为空或0xFFFFFFFF才行。当你擦除了闪存,这些值会变为0xFFFFFFFF,但地址信息没有遗失,它们是存在bootloader里面的,这就是测试点。我们用硬件的办法把A17线强制定位为“或”,就可以把地址偏移0x00040000位置。这样一来,bootrom会检测这四个地址:0xA0040030、0xA004A5A0、0xA0045C58和0xA0047370。而这四个新地址是在主韧体之内的,有办法可以清除,很聪明吧。
如果想用这个软件,你需要得到适合你的iPhone Modem版本的secpack。先检查你的Modem版本,在“设置”菜单下的“关于”,应该是3.12(没有升级过)或3.14(升级到1.0.1或1.0.2)。在“/usr/local/standalone/Firmware”目录下,你可以找到ICE*.fls文件,把它的0x1A4-0x9A4解出来,存在secpack文件中即可。
把secpack文件和iEraser放在一起,运行它,就可以擦除掉Modem的Firmware,我们离最终解锁仅有一步之遥。
接下来我们开始为Firmware打上补丁。先把Firmware从NOR备份中解出,你需要的范围从0x20000开始0x304000结束。把它保存为“NOR”文件。按照你的Modem版本选择补丁:
3.12: (213740): 04 00 A0 E1 -> 00 00 A0 E3
3.14: (215148): 04 00 A0 E1 -> 00 00 A0 E3
保存,稍后会用到。
我们用最后一个工具搞定iPhone:iUnlocker,它会利用bootrom的漏洞上传一个名为“testcode.bb”的小程序到baseband上。iUnlocker需要上一步生成的NOR文件才行,记得放在同一个目录之下。把你的破解开关打开,testcode.bb就会下载到iPhone上。下载完成之后,程序会停止,然后提示你关掉破解开关。准备完成之后,输入任何字符,然后回车,NOR会立即开始下载。当计数器达到0x2E4000的时候,大功告成。最后运行“bbupdater -v”,如果一切正常的话,它会返回xgendata。
通过minicom连接到“/dev/tty.baseband”,如果你之前用完了尝试次数,那么电话应该已经解开。如果没有,那就运行这个指令:AT+CLCK="PN",0,"00000000"
如果用这个指令:AT+CLCK="PN",2,那应该返回0。
最后的步骤:退出minicom,把CommCenter.plist复制回去,重启,用iASign激活。到此为止,你的iPhone已经彻底被解开,恭喜。
本教程作者:乔治·霍茨
原文地址:http://iphonejtag.blogspot.com/2007/08/its-release-time.html
事件起因:《花费五百小时 17岁高中生成功解锁iPhone》