這兩天,網(wǎng)上流傳的一則消息讓不少蘋(píng)果手機(jī)的使用者“炸開(kāi)了鍋”,據(jù)說(shuō)也有不少人“好奇害死貓”,非要嘗試一下,結(jié)果引來(lái)自己的愛(ài)機(jī)“以身殉職”。
該消息稱(chēng),把iPhone手機(jī)的時(shí)間設(shè)定為1970年1月1日,然后關(guān)機(jī)再開(kāi)機(jī),手機(jī)就很有可能變成一塊“磚頭”,無(wú)法啟動(dòng),直到電池電量耗盡。據(jù)說(shuō),目前運(yùn)行iOS8或更新系統(tǒng)的64位處理器設(shè)備幾乎無(wú)一幸免,32位處理器設(shè)備則沒(méi)有受到影響。
現(xiàn)在,蘋(píng)果官方終于對(duì)此事做出了回應(yīng),確認(rèn)如果將系統(tǒng)時(shí)間手動(dòng)設(shè)置為1970年5月或者更早,iPhone、iPad、iPodtouch將會(huì)無(wú)法重啟。
為何會(huì)產(chǎn)生這一bug?
關(guān)于這個(gè)bug,你需要了解的一個(gè)知識(shí)是Unix時(shí)間戳。
iOS系統(tǒng)時(shí)間使用Unix時(shí)間戳(Unixepoch)表示(time_t數(shù)據(jù)類(lèi)型)。Unix時(shí)間戳規(guī)定,UTC時(shí)區(qū)的1970年1月1日0點(diǎn)0時(shí)0秒的值為0,以秒為單位,即每過(guò)一秒,二進(jìn)制數(shù)字加1。
正常來(lái)說(shuō),時(shí)間流逝為正數(shù),但需要注意的是時(shí)間會(huì)受到時(shí)區(qū)的影響。
例如,在北京時(shí)區(qū),將iPhone時(shí)間設(shè)置到了1970年1月1日0點(diǎn)0時(shí)0秒,那么將這個(gè)時(shí)間轉(zhuǎn)換為UTC時(shí)間(公式:北京時(shí)間=GMT+8=UTC+8),那么UTC時(shí)間則會(huì)變成1969年12月31日16時(shí)0分0秒。這樣就會(huì)出現(xiàn)時(shí)間負(fù)值,即時(shí)間回歸bug觸發(fā),系統(tǒng)啟動(dòng)卡在Kernel階段,時(shí)間錯(cuò)誤,無(wú)法繼續(xù)進(jìn)行啟動(dòng)。
值得一提的,當(dāng)iOS設(shè)備連接到公共網(wǎng)絡(luò)時(shí),iOS系統(tǒng)將會(huì)使用NTP服務(wù)對(duì)時(shí)區(qū)、時(shí)間進(jìn)行校準(zhǔn)。如果黑客發(fā)送惡意的NTP攻擊,將iOS系統(tǒng)時(shí)間校準(zhǔn)至UTC<0的時(shí)間,那么所有用戶(hù)設(shè)備均會(huì)受到此bug影響,在重新啟動(dòng)設(shè)備后無(wú)法使用設(shè)備。
如果已經(jīng)變磚了怎么辦?
據(jù)悉,所有系統(tǒng)版本為iOS8.0至iOS9.3beta3,并且搭載64位處理器(即處理器為A7~A9X的設(shè)備)的蘋(píng)果設(shè)備都會(huì)觸發(fā)這個(gè)bug。
會(huì)受影響的蘋(píng)果設(shè)備一覽
那么因?yàn)楹闷?,而已?jīng)去嘗試了一把的果粉們?cè)撛趺崔k?
方法一,你可以拿著變磚的iPhone去找蘋(píng)果售后。蘋(píng)果官方稱(chēng),受到該問(wèn)題影響的任何用戶(hù)都應(yīng)該聯(lián)系蘋(píng)果技術(shù)支持以尋求幫助。
不過(guò),據(jù)外媒報(bào)道,根據(jù)iOS用戶(hù)反饋,他們?cè)谔O(píng)果技術(shù)支持那里獲得的處理方式并不一樣:有的用戶(hù)稱(chēng),蘋(píng)果會(huì)直接更換了他們的設(shè)備,還有的用戶(hù)則被“拒絕”(整機(jī)更換)了。
對(duì)了,因?yàn)椴簧偃撕芎闷孢@個(gè)Bug,但舍不得拿自己的iPhone做試驗(yàn),就跑到蘋(píng)果店里把人家的展示用iPhone、iPad給玩死了……可能現(xiàn)在AppleStore的員工有點(diǎn)自顧不暇了。
方法二,如果不想去蘋(píng)果店維修的用戶(hù),可以參考“民間”解決方案:切斷iOS設(shè)備電源,放置10分鐘后再重新連接電源,設(shè)備之后會(huì)重置時(shí)間,變磚的問(wèn)題就解決了。不過(guò),想要切斷iOS設(shè)備電源意味著,需要拆機(jī)并拆出電池……
方法三,電量充足的情況下,等待數(shù)小時(shí),當(dāng)Unix時(shí)間戳的數(shù)值大于等于0,系統(tǒng)時(shí)間生效,可正常開(kāi)機(jī)。