一、什麼是iOS?
iOS就是iPhone OS。iPhone是一部智能手機,在硬件之上部署了一套iPhone OS操作系統。這個操作系統如同Windows CE和Windows Mobile一樣。用一個對比就能非常容易地描述它們,即:iPhone OS(操作系統)之於iPhone(硬件平台),相當於Win-dows XP之於我們的x86、x64家用PC機,當然也相當於WinCE之於嵌入式硬件。
二、有鎖版和無鎖版有什麼區別?
iPhone分成兩種類型,有鎖版和無鎖版。有鎖版就是加了網絡鎖,也就是綁定了運營商,比如美版的AT&T,英國的O2。這樣的手機只能插入相 應運營商的SIM卡才能使用,插入其他的卡則無法使用,大家通常管這種機器叫做小白。通常情況下,購買這種類型的iPhone是通過和某運營商簽訂一份為 期1–2年的入網協議,綁定信用賬戶承諾月消費多少多少元,折價購機或免費送機。這種方式iPhone的手機費用已經折算到相應運營商的話費中了。如果想 使用別的卡,那麼iPhone就需要先越獄,再解鎖。只有通過這兩部過程,一部有鎖版的iPhone才可以使用別家運營商的卡。關於解鎖,也分為硬解鎖和 軟解鎖,我們後面談起。
無鎖版也叫官方解鎖版,比如港行或是阿聯酋的無鎖版(香港另有和記的“3”定制版iPhone)。這種手機一般價格都會比較高,但好處就在於任何一家運營商的SIM卡都可以順利地幫助iPhone激活,並能夠正常使用。它們只需要越獄,不需要解鎖。
三、什麼是越獄?為什麼要越獄?
越獄是指利用iOS系統的某些漏洞,通過指令取得到iOS的root權限,然後改變一些程序使得iPhone的功能得到加強,突破iPhone的封閉式環 境。iPhone在剛剛買來的時候,是封閉式的。作為我們普通的用戶,是無法取得到iPhoneOS的root權限的,更無法將一些軟件自己安裝到手機 中。我們只能通過iTunes裡的iTunes Store購買一些軟件(當然也有免費的),然後通過Apple認可的方式(iTunes連接iPhone並同步),將我們合法得到的軟件復制如手機。但 這種方式就把我們廣大用戶牢牢地桎梏在蘋果的管轄范圍內。一些好用的軟件,但並不一定符合Apple利益,它們就無法進入iTunes Store。比如我們無法在iOS上安裝SSH,無法復制iOS中的文件,更無法安裝更適合我們的輸入法。這些軟件,都需要用到更高級別的權限,蘋果是不 允許的。
為了能夠更好地使用我們的iPhone,我們要越獄。越獄不是必須的,但越了獄的手機使用起來會更爽、更方便、更好玩。越獄後,能夠免費使用很多軟件,更能夠使手機的易用性進一步增強。
四、什麼是解鎖?為什麼要解鎖?
因為有鎖版iPhone的存在,我們如果想用其他運營商的SIM卡,就必須要解鎖。如果不需要換運營商,當然不用解鎖。但比如,對流到中國大陸的美版水貨來說,不解鎖那也不可能用AT&T,只能解鎖。
解鎖有兩種方法,硬解或軟解,軟解的方法沒放出來之前,都是硬解,最常見的硬解便是使用卡貼。如果不適用卡貼,還有一種終極的解鎖方法,但這種方法只能由 Apple官方來完成,因為我們不知道密鑰。就像我們沒有鑰匙是進不去房間的原理一樣,我們沒有密鑰,就無法全面而完美地解鎖。在逐漸了解了iPhone 基帶、NOR、固件等屬於後,我們再來更加深入地討論完美解鎖這個問題。
通常說的破解,當是“解鎖+越獄”的合稱,對很多iPhone用戶(尤其是中國大陸的美版iPhone使用者)來說,這兩個都是需要(當然還是那句話,越獄不是必須,只是更好玩)的,所以很多破解方式就將解鎖和越獄的方法放在一塊,提供給大家。
五、什麼是固件?怎樣更新固件?
固件是iPhone存儲基礎iOS和通訊模塊實現軟件的載體,相當於電腦的操作系統(如windows xp)或功能更高級BIOS。沒有固件,iPhone只是一部沒有大腦的硬件,就相當於我們買來一台電腦沒有操作系統。固件可以認為是操作系統。
更深入地看,iPhone的固件分為應用部分和基帶部分。應用部分主要指的iOS的iPhone OS操作系統,而基帶主要就是iPhone通訊系統。兩部分加起來,合成為一個xxxx.ispw文件存在,行程了一個iPhone的固件。
更新固件就相當於重新安裝操作系統,是通過iTunes裡面的“iPhone固件恢復”的方式來完成的。在3GS之前的iPhone一代、二代手機,由於 沒有足夠的安全措施,我們可以直接下載Apple的固件軟件(xxx.ipsw)然後恢復。但是在3GS及以後的版本,就不能這樣恢復了。因為對於一個從 網絡上下載的固件來說,我們完全可以修改它們內部的內容直接越獄,這樣蘋果當然是不干的。在3GS加入了加密方式後,我們如果想恢復固件(或稱之為更新固 件),那麼就先要到蘋果的激活服務器上去檢查,我們即將要恢復的固件軟件(xxx.ipsw)是否來自於蘋果官方。他們會檢查這個固件的簽名。如果不是官 方的,那麼對不起,用戶不能恢復該固件。這就印出了下一個話題,及SHSH及自己搭建蘋果固件恢復認證服務器。
六、什麼是ECID?什麼是SHSH?如何備份SHSH?怎樣能恢復到原先的iOS版本?
引入這個話題的根本原因是:,蘋果公司禁止你使用老版本的固件。一旦你“升級”後,就不能“降級”了。他們一般會在你選擇恢復老版本固件的時候,讓 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。
七、什麼是基帶?什麼是NOR?什麼是Seczone?什麼是NCK?
基帶就是iPhone的通訊系統,是用來控制手機通訊的程序,控制電話通訊,WiFi無線通訊,還有藍牙通訊。iPhone有相關的通訊硬件,是需要靠基帶這個通訊系統來驅動的,有了正常工作的基帶,才能打電話、收發短信、使用3G功能。
當然WIFI除外。基帶版本可以從iphone中設置->“關於本機”的調制解調器使用的版本號中查詢到。iOS和基帶相對獨立,協同工作。基帶升 級後,很多軟解就會失效,有鎖版的iPhone便無法使用。而最嚴重的是,基帶幾乎無法降級。所以對於有鎖版的手機來說,基帶升級一定要慎重,一定要等破 解後再升級。當然無鎖版也要慎重對待基帶升級。
NOR是flash內存芯片的一種。區別於Flash NAND. 但都是內存芯片。iPhone 的Baseband就使用這種flash。NOR就是存儲基帶所用的媒介。
Seczone是baseband的一個內部驗證模塊。是屬於這個通信系統的。這個認證模塊很厲害,除非是使用蘋果特定私鑰加密後生成的代碼,其他內容一律會被阻止。這樣基帶便很難被破解。而且不能暴力破解。
NCK是一個解鎖計數器。內部有一個有計數值。達到一定的數值。它將會把iPhone永久變成只能使用AT&T或其它國家合約運營商(注:這取決於你購買的國家)。
有了這些概念,我們就可以討論完美越獄了。
關於完美解鎖更深入的討論:
八、怎麼樣才能實現完美解鎖?
iPhone中baseband(基帶)的資料都存在NOR裡,是的,NOR裡保存了目前baseband的狀態,其中就有目前iPhone的解鎖狀 態,iPhone出廠的時候,都給鎖在ATT的網絡裡了。 到這裡有些人想問了:那麼我們把這個狀態改成解鎖,不就完美了麼,是的,但是,問題是:
1,只有通過baseband的firmware,也就是baseband的操作系統,才能讀寫NOR,而且NOR中seczone的控制及其嚴格,想要直接發指令寫入,是不可能的。
2,baseband的firmware是Apple數字簽名過的,意思就是說,只有Apple自己的1024位的私匙簽名過的firmware,baseband才會運行。
3,最重要的一點,我們不知道要往NOR seczone裡面寫入什麼,才能解鎖,因為NOR seczone裡數據都是加密過的,不是0就是鎖,1就是解鎖這麼簡單,每台iPhone的NOR在加密前可以是一樣的,但是加密後每台都是不一樣的,而 且這個加密機制,也只有通過Apple的私匙才能算出來。
那麼,想要達到完美解鎖,需要怎麼做?
實際上,你可以通過iPhone的minicom對iPhone的baseband發送指令,其中有一條指令,就是用來解鎖的,而且我們明確知道這條指令是什麼,就是: AT+CLCK=“PN”,0,“xxxxxxxx”
注意到後面那8個x了嗎?那些x就是你的解鎖碼,unlock code,或者專業說法,叫做NCK、Network Con-t-rol Key,這個key每個iphone都不一樣,相信蘋果應該是用某種隨機機制生成了這些解鎖碼,然後和IMEI或者序列號掛鉤,放在自己的數據庫裡,在將 來,蘋果官方提供解鎖的時候,他們會通過你的IMEI或者序列號告訴你的unlock code,達到完美解鎖。
但是你發送指令的時候,你的iPhone又怎麼知道這個解鎖碼是對還是錯的?如果iPhone需要知道對錯,那麼說明iPhone自己知道unlock code,所以我們能從iPhone裡某個地方找到這個code,然後完美解鎖,對嗎?不對!
實際上iPhone NOR上保存的,是這個code經過某個特殊的算法生成的一個hash值,hash(code) ,而這個算法是不可逆的(就像MD5)。
通俗點說,我們可以這麼想,Apple教會了iPhone一套暗號,告訴iPhone 1 = 鴨子 2 = 雞 3 = 鵝,然後把暗號123這個unlock code編碼成“鴨子雞鵝”存放在Phone NOR裡,這時候iPhone並不知道unlock code是123,它只知道如果別人告訴我123,我按照Apple的暗號算一下,如果算出來和”鴨子雞鵝”一樣,那麼別人告訴我的code就是對的了。 當然實際上這個過程不是這麼簡單,否則你一猜就能破譯這個密碼了,按照目前的計算機水平,把這個unlock code通過hash過的值逆算回來,幾乎是不可能的。
那麼,我們窮舉行嗎?不就是一個8位數嘛?我們從00000000試到99999999,總有一個對吧?這個方法理論上可以,但是實際上行不通,原因又兩個:
1,按照粗略結算,關把這些1億個指令發給iPhone嘗試,就要35天,並且還不考慮iPhone算需要多久。
2,最關鍵的,iPhone的baseband NOR seczone中,有一個NCK計數器,一旦你嘗試3–10次失敗,你的baseband將會硬件燒死在AT&T上。
所以,目前來說,iPhone完美解鎖,還沒有,相信如果Apple不出大錯誤,也不會有,除非Apple到時候官方推出解鎖,那才是完美解鎖。
九、寫在最後
這篇文章很多內容不僅僅是在介紹,更多是在告訴大家蘋果對iPhone的封閉做了多大的工作。有了這些工作,iPhone才會被限制在一個大牆內,而這堵 牆讓蘋果不僅出售iPhone賺爽了,而且通過iTunes Store售賣了大量iPhone應用。而為了讓我們能夠用上更好的軟件,更開放地使用iPhone,我們需要越獄解鎖。
最後,再匯總一下整個破解的流程:
提前備份好特定版本的SHSH
連接iPhone到電腦,在iTunes上做好同步
下載所需版本的固件(xxxx.ipsw)
恢復固件(對於老版本固件需要使用shsh文件和TinyUmbrella)
運行越獄軟件
在Cydia上安裝解鎖軟件
在Cydia上安裝AppSync軟件,保證所有iPhone應用能夠通過iTunes同步到iPhone中
在iTunes上恢復第二步同步了的iPhone數據
最後做一次同步,將所有存儲在iTunes裡的iPhone應用同步到iPhone中