iPhoneの日付を1970年に設定すると壊れる理由(と自分で直す方法)が判明

160215_iphone1970_02.jpg

直せるからって、やっちゃダメですよ!

コロッサル・ケーブ・アドベンチャーに隠された機能から、テスラの新型のライトショーまで、テクノロジーにはイースターエッグがつきものです。しかし、iPhoneには誰も望まないイースターエッグ、というかバグが隠されていたのです。試せばiPhoneがダメになるので、決して実行しないでくださいね!

先週世間を騒がせたこの騒動の発端は4chanの投稿。5S以上のiPhoneで日付を1970年1月1日に設定すると、レトロなアップルロゴが表示されるというものでした。

160215_iphone1970.jpg

実際に試すと、iPhoneは起動画面で止まってしまいます。当初はジーニアスバーでも解決できず、交換せざるをえないと思われていたのですが、実は解決法がありました。それはバッテリーを完全に消費させるか、あまりおすすめはできませんがバッテリーを抜くことです。

Ars Technicaによれば、1970年1月1日は、UNIX時間の始まりなのだそうです。UNIX系のOSはこの日からの時間を秒数で数えており、そこから日付と時間を計算します。どうもiOSは、システム時間がゼロに近いと起動時に妙な行動を起こすようで、それがブートループの原因であると考えられています。DFUモードから復元しても日付は残ってしまうため、結局ループを抜けられません。そこで電池を完全に消費させて日付をリセットすればいい、ということになります。

解決策が見つかって一安心ですが、このバグをアップルストア店頭用のiPhoneに仕掛けていく悪戯も発生していたり、被害は意外に大きい模様。早くパッチをリリースしてほしいですね。

source: Wired, Ars Technica

Andrew Liptak - Gizmodo US[原文

(scheme_a)