您当前的位置: 首页 > 新闻 > 其他

iPhone 日期时间设定为1970/1/1变砖 到底是真是假

来源: 编辑:vbeiyou 时间:2016-02-15 09:52 人阅读
非常在线2016年2月15日消息,这两天突然在网上盛传有人的iPhone 6因为自己设定了日期为1970/1/1,重启后变成了砖头,到底是网友的恶搞还是真的有这么回事,想要弄清楚事情的真假,必须知道其原理。 201601071013563048 iOS系统时间使用Unix时间戳表示timestamp。在系统中,使用系统位数个二进制位储存时间。在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秒,系统将会出现错误。Apple为了避免这种问题导致的错误发生,将最大时间期限定在了2038年1月1日23时59分59秒。 20160213_181843_488 而在64位的系统中,基于UTC时区来说,北京时间的1970/1/1将变成1969年12月31日16时0分0秒。这样就会出现时间负值,即时间回归bug触发,系统启动卡在Kernel阶段,时间错误,无法继续进行启动,微博中也有网友晒出了其出现这种情况的设备型号。 20160213_181843_921 而解决办法也非常简单,拆机并拆出电池,放置10分钟后重新安装。电量充足的情况下,等待数小时,当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。已越狱的机子添加Cydia源http://repo.ziph0n.com/并安装BrickingDate插件。不过这个bug很可能被黑客利用,当iOS设备连接到公共网络时,iOS系统将会使用NTP服务对时区、时间进行校准。如果黑客发送恶意的NTP攻击,将iOS系统时间校准至UTC < 0的时间,那么所有用户设备均会受到此bug影响,在重新启动设备后无法使用设备。

本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:business@qudong.com

标签: 变砖 1970