继上个月的十二行代码分分钟让浏览器崩溃iPhone重启事件之后,近日又有网友爆出:如果把64位的iOS设备(iPhone、iPad、iPod touch)系统时间修改为1970年1月1日,设备重启后将变砖 。
也有人称:即便是进DFU模式都无法刷机重启,只能到售后去解决问题 。
今天抱着No Try No High Give Me Five的心态把自己的iPhone(型号:5S)系统时间设置成了1970年1月1日:
当时的我心想:只要把时间设置成23点五十多分,只需十来分钟就能恢复正常,想想都觉得自己机智得不要不要的,然后安心地重启了设备 。
重启之后,设备和大多数人的一样:变砖了,一直卡在开机的Logo界面,而且设备还比平时更烫 。
原以为只有等十几分钟,系统日期转为1970年1月2日的时候就能恢复,可是苹果白屏持续了二十分钟,然后又关机放了二十分钟依旧不能开机!
终于,设备在系统时间为1970年1月2日零点三十多分的时候进入了正常界面,BTW没想到的是输入锁屏密码竟然有十来秒的延迟,然后设备又自动重启了!然后就一直白屏、发烫直到没电… 嗯,当时整个人的状态是这样的:
No Zuo No Die Why You Cry,You Try You Die Don’t Ask Why.
苹果客服给出了一个强制恢复方法:
使用这一方法时建议最好采用windows机器来进行操作 。
到这一步时,选择更新或者恢复均可 。
接着iTunes将会下载1.8个G的iOS9.2.1系统文件,下载完成将进行软件提取、恢复操作:
恢复阶段时iTunes、苹果均会显示进度条:
之后只需耐心等待数十分钟即可 。
如果之前未进行数据备份,通过这种方法对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秒,系统将会出现错误 。
那么64位系统中又是怎样的问题呢?我们说到了以UTC时区的1970年1月1日 0点0时0秒为界限,数值为0,时间正常流逝为正数,反之为负数 。不过各位需要留意的是,时间受到时区的影响 。
推荐阅读
- iPhone手机网络诊断正在哪里 苹果网络检查
- 斗鱼直播怎么调0延迟
- 苹果录音在哪
- 搜狗输入法如何开启双拼输入法 搜狗双拼输入法设置方法分享
- 荣耀9X设置锁屏显示时间
- 苹果能强行关机吗
- 靠窗的火车票怎么买
- 苹果手机怎么查流量剩余多少
- 鼠标侧键怎么设置
- 三星S7手机怎么格式化SD存储卡?