日期设为1970年1月1日导致64位iOS设备无法启动的原因及解决办法

  • A+
所属分类:手机系统

近日业界爆出苹果设备的一个bug,如果将一台搭载64位处理器的iphone、ipad的系统日期修改为1970年1月1日,将导致此设备无法正常启动(设备启动时,卡在苹果Logo,无法继续启动)。需要送到苹果商店修理,修理方法很简单,只需切断电池然后重新连上。这个bug影响运行iOS 8或iOS 9,配备64位处理器的iPhone、iPa和iPod Touch设备。本文将分析下引起这个bug的原因及解决办法:

日期设为1970年1月1日导致64位iOS设备无法启动的原因及解决办法

日期设为1970年1月1日导致64位iOS设备无法启动的原因:

苹果iOS系统时间使用Unix时间戳(Unix epoch)表示(time_t数据类型)。在系统中,使用系统位数个二进制位储存时间。Unix时间戳规定,UTC时区的1970年1月1日0点0时0秒的值为0,以秒为单位,即每过一秒,二进制数字加1。不过各位需要留意的是,时间受到时区的影响。假设一种情况,我原来是北京时区,假设将时间设置到了1970年1月1日0点0时0秒,那么我将这个时间转换为UTC时间,公式:北京时间= GMT+8 = UTC+8,那么UTC时间则为1969年12月31日16时0分0秒。这样就会出现时间负值,导致iOS系统启动卡在Kernel阶段,时间错误,无法继续进行启动。

日期设为1970年1月1日导致64位iOS设备无法启动问题的解决方案:

方案一:送到苹果商店修理,由专业人员拆机并拆出电池,放置10分钟后重新安装。

方案二:在iphone、ipad电量充足的情况下,等待数小时(如你手机设置的为东8区,那就等待8个小时以上),当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。(此方法未经官方确认)

更新:

苹果官方已经确认存在以上Bug且承诺会在下一个iOS版本上解决该问题。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: