骑猪兜风

TFBoys王源的iPhone挂了 别怕 手贱有得治

骑猪兜风 2016-02-17 20:32:34    201371 次浏览

今天中午,人气少年偶像组合TFBOYS成员王源发了一条微博,表示自己的iPhone白苹果了:

TFBoys王源的iPhone挂了 别怕 手贱有得治

在评论中,他提到“1970.1.1”,这其实就是国外已经吵吵了好几天的UNIX时间导致iPhone变砖事件。

这是怎么回事?

如果你的iPhone/iPad是64位处理器(iPhone 5s及以后),把通用--日期与时间--自动设置关掉,把时间修改为1970年1月1日,重启设备后就会发现设备卡死在白苹果界面了。

为什么会这样?

在计算机刚刚诞生的时候,工程师们很苦恼如何表示时间,因为世界上划分了许许多多时区,而不同国家甚至有不同的时制(比如美国部分地区实行的夏时制,夏天的白天特别长,因此人为地把时间提前一个小时好提前开始工作)。

TFBoys王源的iPhone挂了 别怕 手贱有得治

聪明的程序员们想到了一个方法:把1970年1月1日0点0分0秒当作“时间的原点”,用“从那以后经过了多少秒”表示具体时间,再按照不同的地点进行时区换算就可以了。

TFBoys王源的iPhone挂了 别怕 手贱有得治

比如下图所示的2016年2月12日17点16分14秒,就是指“1970年1月1日0点0分0秒之后的第1455297374秒”。使用这一计时系统的UNIX系统是计算机系统的始祖,现在一切电子设备几乎都是用这个方式计时的,iPhone自然也不例外。

TFBoys王源的iPhone挂了 别怕 手贱有得治

计算机进行计算的基础是半导体开关的通断,也就是由1和0组成的二进制。而处理器的位数,就是进行一次计算时可以存储的二进制位数,64位处理器自然就是64位。也就是说,在64位处理器上,时间的原点被标识为下面的64个0:

TFBoys王源的iPhone挂了 别怕 手贱有得治

而把十进制的秒数换算成二进制,就是下面这串1和0相间的数:

TFBoys王源的iPhone挂了 别怕 手贱有得治

时间的原点是1970.1.1,那么1970年之前怎么办呢?由于二进制数并不存在负数,因此当64个0再减小,二进制数会突然变成最大的64个1,也就是近三千亿年以后。如果你曾经听说过千年虫事件,这几乎是千年虫倒过来了。

TFBoys王源的iPhone挂了 别怕 手贱有得治

现在,当你把系统时间从2016调到1970之后,你设置的闹钟、收到的短信和通话记录的时间、日历表中的时间全都乱套了,变成了1970年之前,也就是上面这个三千亿年以后。iOS显然没有给时间留出这么大的位数(实际上由于iPhone一开始是 32位的,因此能够显示的最大时间是32个1,也就是大约2038年左右),于是系统就懵逼了。

这是谁的问题?

显然是苹果在升级64位系统时的小纰漏。正常表示时间的时候其实不应该把全部位数都拿来表示秒,而应该把最前面一位作为正负的标志(类似公元前和公元),这样就能有效地避免从 0 点向前退结果退到最大了。这也不是什么大问题,只要下次发布系统更新的时候调整一下计时方法就好了。

我手贱试了一下,结果白苹果了 有什么办法吗?

方法1

去苹果店找天才吧,他们会帮你处理的(满足条件的话,甚至可能直接帮你换机哦)

方法2

就让它白着,设备电耗光了之后时间会自动重置,再充电开机就正常了

方法3

拆机,把电池断开再接通,时间同样会重置,然后就可以正常开机了

方法4

和男票/老公/亲爹/干爹撒娇,让给买个新的6s

内容加载中