iPhone调到1970年会变砖 手贱了该如何挽回?
把iPhone时间设定至1970.1.1这个时间点,手机就会变砖已经被网友热议。苹果公司也承认该方法确实会导致设备变砖。娱乐圈也有TFBOYS成员王源不信这个邪,非要试试,结果手机变砖,只能发出一个“翻白眼”的图片自嘲。 ![]() 实际上,重设时间出问题后,可以通过打开手机内部,拔电池断电的方法解决。 iPhone时间调到1970年1月1日变砖介绍: 先来简单说一下这个Bug触发时的表现,如果用户进入【设置】—【通用】—【时间与日期】,关闭【自动设置】,并将时间修改为1970年1月1日,分秒任意。修改时间后,需要重启设备。然后该设备启动时,则会卡在苹果Logo,无法继续启动。 iPhone时间调到1970年1月1日变砖Bug原理: 说到iOS时间Bug,则必须要介绍一下Unix时间戳,iOS系统时间是使用Unix时间戳(Unixepoch)表示(time_t数据类型)的。Unix时间戳规定,UTC时区的1970年1月1日0点0时0秒的值为0,以秒为单位,即每过一秒,二进制数字加1。 以32位系统为例,在32位系统中,time_t是长度为32位的,首个二进制位是符号位,用来储存正负。正数则为1970/1/1以后的时间,负数反之;其余的31位用来记数。当时间到达2038年1月19日3时14分08秒时,数值位全部向前进1,导致符号位被置1,其余31位为0。此时,将出现【时间回归】的情况,系统时间变为1901年12月13日20时45分52秒,系统将会出现错误。为了避免这个错误,苹果将最大时间设定为2038年1月1日23时59分59秒。而64位系统的最大时间限额将为292,277,026,596年12月04日15时30分08秒,基本可以说是不受这个限制的了。 知道上面这个知识点后,我们再来说一下时区对时间的影响,大家都知道,我们所在的时区是【北京时区】,假如我们将时间设置在1970年1月1日0点0时0秒,北京时间=GMT+8=UTC+8,UTC时间则为1969年12月31日16时0分0秒。这样就会出现时间负值,即时间回归bug触发,系统启动卡在Kernel阶段,时间错误,则无法继续进行启动。 iPhone时间调到1970年1月1日变砖触发该bug条件与表现: 满足以下条件,『时间回归』bug被触发: 系统版本:iOS8.0~iOS9.3beta3 硬件设备:搭载64位处理器的设备(即处理器为A7~A9X的设备) 进入『设置』-『通用』-『时间与日期』,关闭『自动设置』,并将时间修改为1970年1月1日,分秒任意。 修改时间后,需要重启设备。 Bug触发表现:iOS设备启动时,卡在苹果Logo,无法继续启动。 iPhone时间调到1970年1月1日变砖解决办法: 对于所有64位系统,需要拆机,并拆出电池,放置一段时间后,重新安装即可。如果电池电量充足,等待数小时,当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。 需要提醒大家的是,当iOS设备连接到公共网络时,iOS系统将会使用NTP服务对时区、时间进行校准。如果黑客发送恶意的NTP攻击,将iOS系统时间校准至UTC小于0的时间,那么所有用户设备均会受到此bug影响,在重新启动设备后无法使用设备。 (编辑:信阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |