苹果手机设置1970时间戳变砖的过程与解决方法

继上个月的十二行代码分分钟让浏览器崩溃iPhone重启事件之后,近日又有网友爆出:如果把64位的iOS设备(iPhone、iPad、iPod touch)系统时间修改为1970年1月1日,设备重启后将变砖 。

苹果手机设置1970时间戳变砖的过程与解决方法


也有人称:即便是进DFU模式都无法刷机重启,只能到售后去解决问题 。
今天抱着No Try No High Give Me Five的心态把自己的iPhone(型号:5S)系统时间设置成了1970年1月1日:
苹果手机设置1970时间戳变砖的过程与解决方法


当时的我心想:只要把时间设置成23点五十多分,只需十来分钟就能恢复正常,想想都觉得自己机智得不要不要的,然后安心地重启了设备 。
重启之后,设备和大多数人的一样:变砖了,一直卡在开机的Logo界面,而且设备还比平时更烫 。
原以为只有等十几分钟,系统日期转为1970年1月2日的时候就能恢复,可是苹果白屏持续了二十分钟,然后又关机放了二十分钟依旧不能开机!
苹果手机设置1970时间戳变砖的过程与解决方法


终于,设备在系统时间为1970年1月2日零点三十多分的时候进入了正常界面,BTW没想到的是输入锁屏密码竟然有十来秒的延迟,然后设备又自动重启了!然后就一直白屏、发烫直到没电… 嗯,当时整个人的状态是这样的:
No Zuo No Die Why You Cry,You Try You Die Don’t Ask Why.
苹果客服给出了一个强制恢复方法:
苹果手机设置1970时间戳变砖的过程与解决方法


使用这一方法时建议最好采用windows机器来进行操作 。
苹果手机设置1970时间戳变砖的过程与解决方法


到这一步时,选择更新或者恢复均可 。
接着iTunes将会下载1.8个G的iOS9.2.1系统文件,下载完成将进行软件提取、恢复操作:
苹果手机设置1970时间戳变砖的过程与解决方法


恢复阶段时iTunes、苹果均会显示进度条:
苹果手机设置1970时间戳变砖的过程与解决方法


苹果手机设置1970时间戳变砖的过程与解决方法


之后只需耐心等待数十分钟即可 。
如果之前未进行数据备份,通过这种方法对iPhone进行恢复后原有数据将全部丢失!
那么是否还有其他方法呢?答案是有的 。那就是:拆机并拆出电池,放置10分钟后重新安装 。(这一方法未进行验证,如不想数据丢失的小伙伴可尝试一下)
【苹果手机设置1970时间戳变砖的过程与解决方法】为什么会有这个Bug?(下面答案内容来自feomg@知乎)
iOS系统时间使用Unix时间戳(Unix epoch)表示(time_t数据类型) 。在系统中,使用系统位数个二进制位储存时间 。Unix时间戳规定:UTC时区的1970年1月1日 0点0时0秒的值为0,以秒为单位,即每过一秒,二进制数字加1 。
在32位系统中,time_t是长度为32位的,有符号整数(signed int)类型 。首个二进制位是符号位,用来储存正负 。正数则为1970/1/1以后的时间,负数反之;其余的31位用来记数 。当时间到达2038年1月19日 3时14分08秒时,数值位全部向前进1,导致符号位被置1,其余31位为0 。介时,将出现『时间回归』的情况,系统时间变为1901年12月13日 20时45分52秒,系统将会出现错误 。
苹果手机设置1970时间戳变砖的过程与解决方法


那么64位系统中又是怎样的问题呢?我们说到了以UTC时区的1970年1月1日 0点0时0秒为界限,数值为0,时间正常流逝为正数,反之为负数 。不过各位需要留意的是,时间受到时区的影响 。

推荐阅读