iPhone再現漏洞 日期調至1970年1月1日會變磚頭

這兩天,一則訊息讓不少蘋果手機的使用者“炸開了鍋”——

iPhone再現漏洞 日期調至1970年1月1日會變磚頭

該訊息稱,把iPhone手機的時間設定為1970年1月1日,然後關機再開機,手機就很有可能變成一塊“磚頭”,無法啟動,直到電池電量耗盡。

一分鐘變磚,親測可行!

千萬別手賤!

否則你只能抱著“磚”哭!

受到影響的產品包括64位的iOS 8和iOS 9蘋果裝置,以及使用A7、A8、A9和A9X處理器的iPad

會受影響的蘋果裝置一覽

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第2張

昨天,蘋果官方終於對此事做出了迴應,確認如果將系統時間手動設定為1970年5月或者更早,iPhone、iPad、iPod touch將會無法重啟,並表示即將釋出一個系統更新,以防該問題在未來影響iOS裝置。蘋果承諾會盡快修復這一bug,但是並沒有解釋為什麼將iPhone設定到1970年5月以前會變磚。

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第3張

為何會產生這一bug?

(看不懂的請自行跳過)

在YouTube上,一位叫Tom Scott的小夥兒給出了目前來看最靠譜的解釋。

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第4張

至於為何只在64位處理器的蘋果裝置上出現這種問題,Tom認為,舊處理器都是32位的,當將它的程式設計改寫成64位的時,可能就會出現bug。他還警告程式設計師,不要在編寫程式碼時偷懶或耍花招。

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第5張

而二進位制裡,當你給64位儲存的最大數字上加1時,就可能導致資料重回0,也就是整數溢位;但是,當你從最小數字0上減1時,你永遠不會得到負數,就會造成整數下溢。事實上,無論你將時間設定到1970年以前的哪一天,哪怕是公元前,你的iPhone上能設定的最遙遠的時間也只能是1970年1月1日00:00。

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第6張

儘管目前上述儲存格式的最新版本已經允許有負數了,但是從iPhone變磚的現實來看,顯然蘋果還在老的版本上不遺餘力,否則,我們哪兒那麼多槽呢?世界哪兒那麼多歡樂呢?

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第7張

如果已經變磚了,怎麼辦?

蘋果給出的解決辦法是:可以先將iOS裝置拆機並拆出電池,放置10分鐘後重新安裝;或者在電量充足的情況下,等待數小時,當Unix時間戳的數值大於等於0,系統時間生效,可正常開機。

那麼因為好奇,而已經去嘗試了一把的果粉們該怎麼辦?

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第8張

方法一,你可以拿著變磚的iPhone去找蘋果售後。蘋果官方稱,受到該問題影響的任何使用者都應該聯絡蘋果技術支援以尋求幫助。

不過,據外媒報道,根據iOS使用者反饋,他們在蘋果技術支援那裡獲得的處理方式並不一樣:有的使用者稱,蘋果會直接更換了他們的裝置,還有的使用者則被“拒絕”(整機更換)了。

方法二,如果不想去蘋果店維修的使用者,可以參考“民間”解決方案:切斷iOS裝置電源,放置10分鐘後再重新連線電源,裝置之後會重置時間,變磚的問題就解決了。不過,想要切斷iOS裝置電源意味著,需要拆機並拆出電池……

方法三,電量充足的情況下,等待數小時,當Unix時間戳的數值大於等於0,系統時間生效,可正常開機。

對於實在好奇的小夥伴

小編也在這裡送上“作死教程”——

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第9張

日期調至1970年1月1日會變磚頭教程:

1、必須使用iPhone 5s或更新的iOS裝置(即採用A7、A8、A9、A9X處理器的iPhone和iPad是重災區)

2、進入設定-通用-日期和時間選單,關閉自動設定選項

3、手動調整時間至1970年1月1日(計算機的時間原點)

4、重啟iPhone——

大功告成啦~

iPhone再現漏洞 日期調至1970年1月1日會變磚頭 第10張

“你沒資格改變時間,只有時間可以改變你”

聽起來好有哲理