iPhone時(shí)間調(diào)到1970年1月1日變磚解決辦法。最近網(wǎng)上大家都在瘋傳的一則消息,即把時(shí)間調(diào)為1970年1月1日后重啟設(shè)備會(huì)變磚,A7處理器以上的設(shè)備均會(huì),這是怎么回事呢,那萬(wàn)一有朋友真的去嘗試了導(dǎo)致iPhone時(shí)間調(diào)到1970年1月1日變磚怎么辦呢,別急,萬(wàn)能的手機(jī)世界小編這就來(lái)教你們iPhone時(shí)間調(diào)到1970年1月1日變磚無(wú)法開(kāi)機(jī)解決辦法吧!
相關(guān)教程:蘋(píng)果iPhone6sPlus忘記Apple ID解決方法
iPhone時(shí)間調(diào)到1970年1月1日變磚介紹:
先來(lái)簡(jiǎn)單說(shuō)一下這個(gè)Bug觸發(fā)時(shí)的表現(xiàn),如果用戶進(jìn)入【設(shè)置】—【通用】—【時(shí)間與日期】,關(guān)閉【自動(dòng)設(shè)置】,并將時(shí)間修改為1970年1月1日,分秒任意。修改時(shí)間后,需要重啟設(shè)備。然后該設(shè)備啟動(dòng)時(shí),則會(huì)卡在蘋(píng)果Logo,無(wú)法繼續(xù)啟動(dòng)。
iPhone時(shí)間調(diào)到1970年1月1日變磚Bug原理:
說(shuō)到IOS時(shí)間Bug,則必須要介紹一下Unix時(shí)間戳,IOS系統(tǒng)時(shí)間是使用Unix時(shí)間戳(Unix epoch)表示(time_t數(shù)據(jù)類型)的。Unix時(shí)間戳規(guī)定,UTC時(shí)區(qū)的1970年1月1日 0點(diǎn)0時(shí)0秒的值為0,以秒為單位,即每過(guò)一秒,二進(jìn)制數(shù)字加1。
以32位系統(tǒng)為例,在32位系統(tǒng)中,time_t是長(zhǎng)度為32位的,首個(gè)二進(jìn)制位是符號(hào)位,用來(lái)儲(chǔ)存正負(fù)。正數(shù)則為1970/1/1以后的時(shí)間,負(fù)數(shù)反 之;其余的31位用來(lái)記數(shù)。當(dāng)時(shí)間到達(dá)2038年1月19日3時(shí)14分08秒時(shí),數(shù)值位全部向前進(jìn)1,導(dǎo)致符號(hào)位被置1,其余31位為0。此時(shí),將出現(xiàn) 【時(shí)間回歸】的情況,系統(tǒng)時(shí)間變?yōu)?901年12月13日20時(shí)45分52秒,系統(tǒng)將會(huì)出現(xiàn)錯(cuò)誤。為了避免這個(gè)錯(cuò)誤,蘋(píng)果將最大時(shí)間設(shè)定為2038年1月 1日23時(shí)59分59秒。而64位系統(tǒng)的最大時(shí)間限額將為292,277,026,596年12月04日15時(shí)30分08秒,基本可以說(shuō)是不受這個(gè)限制的 了。
知道上面這個(gè)知識(shí)點(diǎn)后,我們?cè)賮?lái)說(shuō)一下時(shí)區(qū)對(duì)時(shí)間的影響,大家都知道,我們所在的時(shí)區(qū)是【北京時(shí)區(qū)】,假如我們將時(shí)間設(shè)置在1970年1月1日0點(diǎn)0時(shí)0 秒,北京時(shí)間=GMT+8=UTC+8,UTC時(shí)間則為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)。