2011年10月9日 星期日

什麼是SHSH,為什麼要備份SHSH?


簡單來講,SHSH就是你手機的唯一證書,保管在蘋果那裡。一個手機只有一個,沒錯,這是唯一的,你不能使用別人的SHSH。

Apple(蘋果)為了統一進行管理,制約這些賣出去的iPhone,所以對他們制定了這麼一個機制,就是SHSH。你的機器每一次連接到iTunes 進行固件的升級或者恢復,iTunes都會連接到蘋果的伺服器,檢查現在這台機器的SHSH是什麼版本,然後再根據當前SHSH版本來決定你的機器更新&恢復到哪一個版本的iOS。

比如我的機器是美版有鎖的,系統是 4.0.1,那麼目前蘋果伺服器上的我的機器的SHSH,很顯然,是4.1,因為目前是4.1的系統(系統的升級和SHSH是掛鉤的),如果我的機器現在連接到iTunes進行固件的恢復或者更新操作,就會去驗證我的SHSH,我的SHSH目前是4.1,那麼我的機器就會被告知升級到4.1。

為什麼要備份SHSH?這是一個比較複雜的邏輯,請閱讀者慢慢思考一下將要講到的內容;
我前面也說到了,SHSH就是你機器在蘋果伺服器裡面的一張證書,這個證書的版本決定了你機器當時是和升級和恢復的版本。我的機器是4.0.1系統,如果我不小心使用91助手使其系統發生故障,無法正常使用,我怎麼辦呢?當然是刷機(恢復,更新,升級),這一操作都必須連接到iTunes來進行,當你連接到iTunes的時候,蘋果伺服器驗證到你機器在他伺服器裡面的SHSH版本是4.1,那麼我的機器要想正常就只能升級到4.1了,並且4.1目前還不能夠越獄和解鎖,我前面也提到了,解鎖需要高許可權,必須越獄後才能使用。不能解鎖的後果就是不能打電話,至少不能在中國插著中國的SIM卡打電話了,這是悲劇的。

所以我們要備份SHSH,就是當蘋果還沒有更新系統和SHSH版本的時候,我們把在蘋果伺服器裡面的SHSH證書提取出來,備份到本地電腦或者網路上的其他伺服器,例如CYDIA的伺服器裡面。比如在蘋果還是4.01的時代的時候,我就將401的SHSH證書備份到了Cydia伺服器上面,那麼下載我要是4.1的系統,但是不能越獄,我就必須“降級”,注意這裡的降級兩個字,其實在蘋果產品裡面沒有降級這一說法,都是升級。嚴格點的話應該這麼說:我現在是4.1的系統,無法越獄解鎖,那麼我只能“升級”到4.0.1,連接iTunes,蘋果伺服器檢測到當前我的SHSH證書是4.1,那麼我現在將會從4.1升級到4.1,但是我要回到4.01怎麼辦?辦法是修改本地HOST檔,讓iTunes的伺服器驗證地址指向cydia伺服器或者本地,修改後,從新連接iTunes,開始檢測伺服器,這個時候我將伺服器指向了cydia,iTunes檢測到cydia 伺服器裡面的SHSH證書是4.0.1,這個時候iTunes就會通知我目前可以從4.1升級到4.0.1,確認,升級,成功。

另外,這裡補充一點,SHSH和你當前系統版本沒有關係,你機器的系統是你的事情,你可以選擇永遠不升級;但是你的SHSH在蘋果伺服器裡面,就由蘋果做主,他會根據系統固件的更新而階段性的給你的SHSH證書升級。

所以你的機器系統版本哪怕是 3.x,你同樣可以去蘋果伺服器裡面提取你的4.1SHSH備份到其他地方。不過目前你也只能提取4.1的SHSH,別無選擇。

重點補充一下:現在 4.3.3SHSH不能備份 而且即將發佈的5.0也可能要捨棄SHSH的驗證 至於到時候怎麼辦 還是讓我們期待IOS5.0的發佈把~