这两天,网上流传的一则消息让不少苹果手机的使用者“炸开了锅”,据说也有不少人“好奇害死猫”,非要尝试一下,结果引来自己的爱机“以身殉职”。
该消息称,把iPhone手机的时间设定为1970年1月1日,然后关机再开机,手机就很有可能变成一块“砖头”,无法启动,直到电池电量耗尽。据说,目前运行iOS8或更新系统的64位处理器设备几乎无一幸免,32位处理器设备则没有受到影响。
现在,苹果官方终于对此事做出了回应,确认如果将系统时间手动设置为1970年5月或者更早,iPhone、iPad、iPod touch将会无法重启。苹果称会在未来的软件更新中解决这个问题,但不清楚会在如今的iOS 9.2.2上直接OTA,还是得等下个月的iOS 9.3。
为何会产生这一bug?
关于这个bug,你需要了解的一个知识是Unix时间戳。
iOS系统时间使用Unix时间戳(Unix epoch)表示(time_t数据类型)。Unix时间戳规定,UTC时区的1970年1月1日 0点0时0秒的值为0,以秒为单位,即每过一秒,二进制数字加1(注:UTC时间,即协调世界时,为原子钟提供的世界标准时,以取代过去的GMT格林尼治时间)。
正常来说,时间流逝为正数,但需要注意的是时间会受到时区的影
例如,在北京时区,将iPhone时间设置到了1970年1月1日0点0时0秒,那么将这个时间转换为UTC时间(公式:北京时间 = GMT+8 = UTC+8),那么UTC时间则会变成1969年12月31日16时0分0秒。这样就会出现时间负值,即时间回归bug触发,系统启动卡在Kernel阶段,时间错误,无法继续进行启动。
苹果公司在网站上的回应
值得一提的,当iOS设备连接到公共网络时,iOS系统将会使用NTP服务对时区、时间进行校准。如果黑客发送恶意的NTP攻击,将iOS系统时间校准至UTC<0的时间,那么所有用户设备均会受到此bug影响,在重新启动设备后无法使用设备。
如果已经变砖了 怎么办?
据悉,所有系统版本为iOS8.0至iOS 9.3beta3,并且搭载64位处理器(即处理器为A7~A9X的设备)的苹果设备都会触发这个bug。
会受影响的苹果设备一览会受影响的苹果设备一览
那么因为好奇,而已经去尝试了一把的果粉们该怎么办?
方法一,你可以拿着变砖的iPhone去找苹果售后。苹果官方称,受到该问题影响的任何用户都应该联系苹果技术支持以寻求帮助。
不过,据外媒报道,根据iOS用户反馈,他们在苹果技术支持那里获得的处理方式并不一样:有的用户称,苹果会直接更换了他们的设备,还有的用户则被“拒绝”(整机更换)了。
对了,因为不少人很好奇这个Bug,但舍不得拿自己的iPhone做试验,就跑到苹果店里把人家的展示用iPhone、iPad给玩死了……可能现在Apple Store的员工有点自顾不暇了。
方法二,如果不想去苹果店维修的用户,可以参考“民间”解决方案:切断iOS设备电源,放置10分钟后再重新连接电源,设备之后会重置时间,变砖的问题就解决了。不过,想要切断iOS设备电源意味着,需要拆机并拆出电池……
方法三,电量充足的情况下,等待数小时,当Unix时间戳的数值大于等于0,系统时间生效,可正常开机。