(編譯此內容僅供網友參考,不確保其教程的完整、可靠,且不承擔任何法律責任)
你需要的工具:
首先,你得有一部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》