iPhone时间调到1970年1月1日变砖怎么办?很多朋友可能还不知道。下面2345软件百科小编就给大家分享一下解决办法。
将iPhone时间设置为1970年1月1日并导致其变砖的介绍:
首先,我们简单说一下这个bug被触发时的行为。如果用户进入[设置]-[常规]-[时间和日期],关闭[自动设置],并将时间更改为1970年1月1日的任何分钟或秒。修改时间后,需要重启设备。那么设备启动时就会卡在Apple Logo上,无法继续启动。
iPhone 时间设置为1970 年1 月1 日,然后就变砖了。漏洞原理:
说到IOS时间bug,就必须介绍一下Unix时间戳。 iOS系统时间用Unix时间戳(Unix epoch)(time_t数据类型)表示。 Unix时间戳规定UTC时区1970年1月1日0:00:00的值为0,单位为秒,即二进制数每秒加1。
以32位系统为例。在32位系统中,time_t的长度为32位,第一个二进制位是符号位,用于存储正值和负值。正数表示1970/1/1以后的时间,负数表示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,12月04日,596,15:30:08,这基本上是不行的受此限制。
了解了上面的知识点之后,我们再来说说时区对时间的影响。众所周知,我们的时区是【北京时区】。如果我们将时间设置为1970年1月1日0:00:00,北京时间=GMT+8=UTC+8,UTC时间为1969年12月31日16:00:00。这样就得到了负时间会出现value,即触发时间回归bug,系统启动卡在Kernel阶段。如果时间错误,则无法继续启动。
iPhone 时间设置为1970 年1 月1 日,然后就变砖了。该bug的触发条件及表现形式:
当满足以下条件时,会触发“时间回归”错误:
系统版本:IOS 8.0 ~ IOS 9.3 beta 3
硬件设备:配备64位处理器的设备(即配备A7~A9X处理器的设备)
进入“设置”-“常规”-“时间和日期”,关闭“自动设置”,将时间更改为1970年1月1日的任意分钟或秒。修改时间后,需要重启设备。
Bug触发症状:IOS设备启动时,卡在Apple Logo上,无法继续启动。
iPhone将时间设置为1970年1月1日后变砖的解决方法:
对于所有64位系统,都需要拆机并取出电池,放置一段时间,然后重新安装。如果电池电量充足,请等待几个小时。当Unix时间戳的值大于等于0时,系统时间生效,计算机可以正常启动。
需要提醒大家的是,当IOS设备连接到公网时,IOS系统会使用NTP服务来校准时区和时间。如果黑客发送恶意NTP攻击将IOS系统时间校准为UTC小于0的时间,那么所有用户设备都将受到该漏洞的影响,重启设备后将无法使用设备。