雷锋源中文网
最快捷的苹果资讯

“1970 事件”全集:它的所有剧集都在这儿了

以前我们总调侃别人说,别以为你能轻易让手机变砖,要让手机变砖也是需要实力和运气的。现在,一个1970就搞定了。

过年回来上班,发现朋友圈、微博里频繁在刷两个事件,一个是鹅网红,另一个就是 1970 事件。以前我们总调侃别人说,别以为你能轻易让手机变砖,要让手机变砖也是需要实力和运气的。无论是 Android 还是 iPhone。

然而,现在,让 iPhone 变砖似乎已经不再需要“你是怎么做到的”感叹,也不再需要你花费所有的运气,只要将手机时间设置为1970年1月1日,手机秒变砖头,妥妥的。

  “1970”——一个像病毒式蔓延的 Bug

最初是谁发现了这样一个深埋多年的 Bug?

就是这个“无聊”的家伙——vista980622,人家无聊对对手指,数数头发,他另辟蹊径,设置手机时间。

这个家伙在国外一个名为 reddit 的论坛上发表了一个名为“把 iPhone 时间改成 1970 年 1 月 1 日,手机即可永远变砖”的帖子。

经常逛科技论坛的同学应该都知道 Reddit 的影响力,在这样一个论坛上爆出这样一个帖子,仿佛在黑夜里投下了一颗炸弹啊!

在帖子发布之后,很多人表示不相信,纷纷不作不死的将手机时间设置到 1970 年 1 月 1 日。都说实践才最有说服力,果不其然。现在这些人估计都还在苹果店排队吧。

1970 年 1 月 1 日像病毒一样迅速在全世界蔓延,不止不少国外 iPhone 用户体验中招,国内也有不少网友手贱尝试。不说远的,就说 TFboys 组合里又帅又学霸还是人气王的王源,王源昨天发微博表示“不作死就不会死,我心里苦但我不说”,配图为已经成功变砖的 iPhone。

我们论坛锋友也有不少忍不住尝试的,把子弹当彩蛋,也是醉了。比如:

 苹果:这个锅,我背

如果是意外,比如手机自己动手把自己的时间设置为 1970 年 1 月 1 日,那么我们无话可说。但是,要知道在“1970”像病毒一样传播开来之后,有多少人只是因为好奇和手贱而把自己的手机变成砖。但是,即使是后面这种情况,苹果依然愿意承担这个责任。不过,话说回来,苹果其实也不能完全脱离关系。

首先,苹果官方已经承认了“1970”变砖 bug,并且称只要日期设置在了 1970 年 5 月之前就都会遇到相同的问题。

其次,苹果表示将尽快对 iOS 系统进行更新,以防止该日期设置漏洞对 iOS 设备和用户体验的影响。而已经出现问题的用户可以向苹果官方售后求助。

第三,有部分用户还成功因为“1970 事件”而能够在苹果店换了新机。

 1970 年 1 月 1 日究竟是什么妖怪?

也许有的人已经知道,计算机时间和众多的编程语言的时间都要从 1970 年 1 月 1 日开始算起呢,但是时间计时起点到底为什么是 1970 年 1 月 1 号呢?

很多编程语言起源于 UNIX 系统,而 UNIX 系统认为 1970 年 1 月 1 日 0 点是时间纪元,所以我们常说的 UNIX 时间戳是以 1970 年 1 月 1 日 0 点为计时起点时间的。

而 iOS 操作系统就是以 UNIX 为时间戳,Unix 时间戳规定,UTC 时区的 1970 年 1 月 1 日 0 点 0 时 0 秒的值为 0,以秒为单位,即每过一秒,二进制数字加 1。考虑到时区的影响,在北京时区,将 iPhone 时间设置到了 1970 年1月1 日 0 点 0 时 0 秒,那么将这个时间转换为 UTC 时间(公式:北京时间 = GMT+8 = UTC+8),那么 UTC 时间则会变成 1969 年 12 月 31 日 16 时 0 分 0 秒。这样就会出现时间负值,即时间回归 bug 触发,系统启动卡在 Kernel 阶段,时间错误,无法继续进行启动,就砖了。

其实,除了1970之外,还有一个劫难,那就是2038年,不过那是为32位设备准备的劫难,不关 64 位手机的事。细心的朋友发现了一个问题,iOS系统可以设置的最大时间是2038年1月1日,并不能再往后设置。

在 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 秒,系统将会出现错误。

所以苹果为了避免这种问题导致的错误发生,将最大时间期限定在了 2038 年 1 月 1 日 23 时 59 分 59 秒。这样即使超出这个范围,在 18 天内也不会有太大问题,再说了,32 位设备到那个时候基本都已经淘汰了。

为什么 64 位手机不会受到 2038 年的影响,因为通过计算我们可以得到,292,277,026,596年12月04日 15 时 30 分 08 秒是 64 位系统可以表示的最大时间。

哪些设备会中招?

iPhone 要中“1970”的毒,需要满足下面几个条件:

系统版本:iOS 8.0 -iOS 9.3 beta 3,包括 9.2.1

硬件设备:搭载 64 位处理器的设备(即处理器为 A7-A9X 的设备)

我们统计了一下,涉及的设备包括以下设备:

A7:iPhone 5s、iPad mini 2、iPad mini 3;
A7 variant:iPad Air;
A8:Apple TV 4G、iPad mini  4、iPhone 6、iPhone  6 Plus、iPod Touch 6G;
A8X:iPad Air 2;
A9(三星/台积电):iPhone 6s、iPhone 6s Plus;
A9X:iPad Pro;

  1970 年 1 月 1 日被利用啦

第一种,上周四有人在 4Chan 上贴一张图称,如果把 iPhone 时间设置为 1970 年 1 月 1 日,重启之后就能够看到旧版的苹果 Logo。很多人大呼上当。

第二种,这种还没有人尝试,还只是一个设想。做个开放 Wi-Fi,把苹果的 ntp 解析到自己,日期改 1970.1.1,再用 DNS 劫持的方式触发安全重启警告。手机连接 Wi-Fi 之后,就去厕所哭一会吧。

和前面的两种恶搞不同,第三种则有点贪小便宜的感觉。我们上面已经说过,部分因 1970 bug 变砖的手机可以在苹果店换得新机。有些人则利用这一点,故意把旧手机时间设置成 1970 年 1 月 1 日,企图让苹果为其更换新机。这种做法让人鄙视。不过,有这种想法的朋友还是省省吧,因为苹果店并非每一台机型都允许更换,更多时候会叫你耐心等更新。

最后一种,你真的太机智了!有一种人,自己十分好奇,想要体验设置 1970 让 iPhone 变砖是一种怎样的体验。他不用自己的手机测试,而是跑去苹果店,用店内的设备测试,修改人家店内设备的时间!你这么聪明,你妈妈知道吗?哈哈哈哈哈

不过,万幸的是,展示用的 iPhone、iPad 等设备有“特殊技能”,这种操作对于体验机是无效,因为苹果店里的展示机均带自动恢复功能,不管做了什么操作都可以自动恢复,修改时间对这些手机也不会有影响。

——拆开手机拿掉电池,放置 10 分钟后重新安装。

——电量充足的情况下,等待数小时,当 Unix 时间戳的数值大于等于 0(等到时间戳慢慢走过负数的区域),系统时间生效,可正常开机。

不过,这样一来,你就会因为私自拆机而失去苹果的官方保修。对了,拆机的时候请找专业人士,请找专业人士,请找专业人士!重要的事情说三遍,以防有些同学着急,自己找个螺丝刀就蛮干。

未经允许不得转载:雷锋源中文网 » “1970 事件”全集:它的所有剧集都在这儿了

点赞 (3)
分享到:更多 ()

评论 抢沙发