iOS系統的推送功能雖然看上去比較不起眼,但卻有大用處,因為iPhone手機和iPad平板電腦上接收到的大量客戶端信息都是由推送功能來提醒用戶的。但推送功能的失靈卻是蘋果用戶們面臨的一個大問題。不過,相信大家看完下邊的文章,就不會再為推送功能失靈而煩惱了。
推送不簡單
QQ消息不提醒了,微信語音只有進入程序后才能看到,各種郵件、新浪微博、人人網神馬的更是沒有消息提醒……iPhone、iPad、iTouch從此變得靜悄悄。這種情況實際上是因為大家的推送功能失效。對于大多數用戶而言,推送功能都是非常重要的,相信大家都不愿意漏掉朋友發來的信息或者是重要的郵件吧。推送看上去雖然只是個小功能,但卻有相當大的作用,同時在技術層面上也蠻復雜的。下邊就以iPhone為例,為大家簡單講解下吧(搞明白iPhone,其他設備的原理也是一樣)。
首先,我們來看看推送的整個過程吧。例如微信,首先與用戶聊微信的人傳來的信息會在微信的服務器做信息定向,把消息和目的iPhone的標識打包,然后發給APNS(Apple Push Notification Service,即Apple Push推送服務器)。然后APNS在自身已注冊Push服務的iPhone列表中,查找有相應標識的iPhone,并把消息發到這臺iPhone上。最后,iPhone把發來的消息傳遞給相應的應用程序,并且按照設定彈出推送通知。
正是有了上邊的這個看上去有點小復雜的過程,所以推送是需要認證的。iPhone在開啟推送功能的時候,會連接APNS形成一條TLS(Transport Layer Security傳輸層安全)加密鏈接。每臺正常的iPhone都有一個獨有的設備證書(Unique Device Certificate),而APNS也有一個服務器證書。二者成立的時候,會驗證彼此的證書有效性。TLS鏈接一旦成立,推送即可生效。如因為意外原因導致鏈接中斷,iPhone會不斷重新嘗試成立TLS鏈接,直至成功。不過,APNS判斷推送消息該發給哪臺iPhone的依據是一個“目的iPhone的標識”,這個標識就是Device Token(設備標識)。而它則是每次成立TLS連接時,APNS通過每臺正常的iPhone唯一的設備證書,并用標識密鑰(Token Key)加密生成的。總的來說,要想推送功能生效,那就得保證iPhone上邊的設備證書和標識密鑰有效。
修復推送 深入有鎖版重災區
拜蘋果的封閉式iOS操作系統所賜,推送功能失效,多數情況下與刷機、越獄有關。用戶的iPhone 4手機連接到iTunes上正常激活即可獲得有效設備證書。不過價廉物美的有鎖版iPhone 4卻有些另類,因為它在升級iOS系統時需要保留基帶(關于保留基帶請參考《數碼生活》2012年2月刊),同時需要使用捆綁合約公司SIM卡,也就是我們常說的“原卡”,才能正常激活使用,所以在沒有“原卡”的情況下更新系統后需要先越獄進入到iOS系統,然后再通過軟件或卡貼解鎖。而一旦越獄,iPhone 4就跳過了正常激活的步驟,設備證書也就隨之失效了,進而導致設備無法再實現推送功能。所以,有鎖版iPhone 4也是推送功能失效的重災區。
軟解鎖用戶首選工具——SAM
軟解鎖是最方便的解鎖辦法,因為只需要在越獄之后,在Cydia中查找安裝類似Ultrasn0w的解鎖工具,即可通過iPhone 4手機基帶的漏洞,注入代碼,騙過基帶,讓非綁定的SIM正常識別、工作了。不過,越獄、解鎖成功后,我們的手機原有的設備證書同樣是無法生效的,這就需要SAM這款軟件了。
SAM可以將用戶的手機設置成未激活狀態,然后將用戶的SIM卡模擬為“原卡”,欺騙iTunes激活獲取證書,從而修復推送功能,方法其實也并不太難。用戶需要在Cydia上添加“http://repo.bingner.com”軟件源,而后搜索并安裝SAM。安裝好重啟手機之后,SAM就會出現在iPhone 4的設置菜單中,然后就可以進行操作了。
首先,在不連接電腦的情況下,在SAM菜單里的Ulities中,點擊Revert Lockdownd to Stock(還原未鎖定),成功后在More Information中的ActivationState(激活狀況)中會顯示“Unactivated”,即未激活狀態。這個步驟就是讓用戶的手機進入未激活的狀態。而后點擊Method(SIM模式),選擇“By Bundle Name(捆綁運營商名稱)”,接著在“Bundle(捆綁運營商)”菜單里就可以選擇運營商了。不同國家和運營商的iPhone 4手機在這里都能看到,手頭這臺有鎖版iPhone 4手機是美國AT&T公司的,直接打鉤即可,而后勾選SIM ID,國內絕大部分美版和日版有鎖iPhone 4的SIM ID都是31050或31070。全部填寫完后,More Information菜單中的ActivationState就會變成WildcardActivated(通用卡激活)。接著保持頁面停留在More Information選項內,然后在電腦上打開iTunes,再用數據線將手機連接到電腦上,此時iTunes會顯示“正在訪問iTunes Store”的進度條,顯示約3秒后,按下手機上More Information選項內“Spoof Real SIM to SAM”即可騙過iTunes,讓手機獲得有效的設備證書,從而成功修復推送功能。
卡貼用戶 原卡必備
相信絕大多數有鎖版iPhone 4用戶使用的都是卡貼解鎖(2012年1月的雜志曾對此有較為詳細的介紹),因為相對于軟解鎖而言,卡貼解鎖的適用范圍更大(目前使用最多GEVEY卡貼可解鎖較新的04.10.01基帶)。而對于卡貼用戶而言,所謂的“原卡”絕對是必備的,而且這種原卡的價格其實也并不高,一般淘寶上價格在20元以內,只是用戶需要準確了解手機的國家和綁定公司名稱(通過手機的IMEI碼可以查到)。
使用SAM最大的好處就是讓用戶在推送功能失效狀態下,不必重新刷機,同時也不用購買解鎖“原卡”,更可以擺脫解鎖卡貼,通過幾步操作即可輕松讓有鎖版iPhone 4的推送功能得到完美的修復。不過這個方法也會受到基帶和解鎖軟件的限制。因為如果是近期購買有鎖版iPhone 4的用戶,他們的系統有可能是4.3.5甚至更新版的iOS系統,此前我們曾經介紹過了4.3.5版的iOS自帶的基帶版本為04.10.01,而最新的Ultrasn0w卻無法對該版本的基帶解鎖,用戶只能使用卡貼解鎖。而經過實驗證明,SAM目前最新的版本對于使用卡貼解鎖的iPhone 4是無效的。
因此,SAM更適用于基帶版本較老的保基帶升級的iPhone 4。而基帶較新的有鎖版iPhone 4則最好借助“原卡”。
原卡到手之后,只需要正常刷機,然后插上原卡正常激活即可,具體方法如下。刷機過程介紹就先跳過了,因為之前我們已經無數次為大家介紹過。刷完系統后,咱的蘋果會提示“No SIM Card Installed”,這時候可以先不管它,直接跳過后選擇語言,再裝入事先準備的“原卡”,選擇國家“中國”,并啟動定位服務,接著輸入WiFi密碼上網,然后就開始激活了。激活完成后,還需要做幾步設置。千萬記住要選擇“設置為新的iPhone”,如果用戶選擇從備份中恢復的話,那么有可能推送協議會失敗。而接下來的設置就無足輕重了,“使用iCloud”、使用“查找我的iPhone”等等直接打鉤,然后選下一步后,就可以“開始使用iPhone了”。進入系統后,需要換下之前的“原卡”,然后把我們自己使用的電話卡用卡貼套好,裝上之后打112解鎖,然后才能正常的打電話。
原卡修復操作步驟相對簡單。但是最麻煩的是一旦關機后,就需要重新解鎖,而且特定環境的手機信號也非常差。通過上兩種方式激活以后,用戶的iPhone或者是其他蘋果設備信息推送功能都能夠完全恢復正常,而且不會出現“跑流量”、耗電量大等問題。網上也有一些其他的辦法,例如很多網友提供了自制已激活設備證書的下載地址,用戶只要下載證書,并在越獄后使用iFunBox將證書粘貼到自己手機的證書目錄里即可。這種方法雖然有用,但因為證書的來源問題,有時候會出現幾個用戶下載使用了相同證書的情況,這下就麻煩了,因為一個用戶的信息將會推送給一起使用一個證書的N個用戶那里,出現“亂推”現象。所以,有鎖版的各位用戶還是老老實實使用上面兩種最成熟的辦法吧。
原卡到手之后,只需要正常刷機,然后插上原卡正常激活即可,具體方法如下。刷機過程介紹就先跳過了,因為之前我們已經無數次為大家介紹過。刷完系統后,咱的蘋果會提示“No SIM Card Installed”,這時候可以先不管它,直接跳過后選擇語言,再裝入事先準備的“原卡”,選擇國家“中國”,并啟動定位服務,接著輸入WiFi密碼上網,然后就開始激活了。激活完成后,還需要做幾步設置。千萬記住要選擇“設置為新的iPhone”,如果用戶選擇從備份中恢復的話,那么有可能推送協議會失敗。而接下來的設置就無足輕重了,“使用iCloud”、使用“查找我的iPhone”等等直接打鉤,然后選下一步后,就可以“開始使用iPhone了”。進入系統后,需要換下之前的“原卡”,然后把我們自己使用的電話卡用卡貼套好,裝上之后打112解鎖,然后才能正常的打電話。
原卡修復操作步驟相對簡單。但是最麻煩的是一旦關機后,就需要重新解鎖,而且特定環境的手機信號也非常差。通過上兩種方式激活以后,用戶的iPhone或者是其他蘋果設備信息推送功能都能夠完全恢復正常,而且不會出現“跑流量”、耗電量大等問題。網上也有一些其他的辦法,例如很多網友提供了自制已激活設備證書的下載地址,用戶只要下載證書,并在越獄后使用iFunBox將證書粘貼到自己手機的證書目錄里即可。這種方法雖然有用,但因為證書的來源問題,有時候會出現幾個用戶下載使用了相同證書的情況,這下就麻煩了,因為一個用戶的信息將會推送給一起使用一個證書的N個用戶那里,出現“亂推”現象。所以,有鎖版的各位用戶還是老老實實使用上面兩種最成熟的辦法吧。