V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iF2007
V2EX  ›  iOS

关于 iOS 8+ 和 64-bit 设备的 1970 问题

  •  
  •   iF2007 · 2016-02-17 10:42:55 +08:00 · 2122 次点击
    这是一个创建于 3016 天前的主题,其中的信息可能已经有所发展或是发生改变。

    关于最近很热的 1970 问题,关于为什么触发开机白苹果有几个问题想和大家探讨一下:

    - 开机白苹果是重启造成的,如果单纯修改时间不重启,似乎没有看到说 Kernel 或 App 会出现崩溃等问题。因此一些文章里分析说是 App 中消息的时间比系统时间晚从而触发“ bug ”,我觉得这种说法不对。另外例如北京( GMT+8 )只能将时间设置到 1970-01-01 08:00:00 ,这是不会直接造成 underflow 的。

    - 如果设备闲置很久,已经没有电了,系统会回到一个固定的时间(具体哪天我没注意,但我的 iPod touch 4 (iOS 6.1.6) 吃灰很久以后,充电开机后时间会重置到某一天的 12 点)。这样能否不移除电池而解决 1970 的问题?

    - 32-bit 的设备为什么没有问题?

    我自己的理解是由于 boot 要经过一系列利用证书进行签名验证的过程,由于时间修改导致 Apple 嵌入的证书失效从而无法验签,进而无法完成 boot 过程。
    欢迎一起探讨

    6 条回复    2016-02-17 14:01:54 +08:00
    typcn
        1
    typcn  
       2016-02-17 10:46:34 +08:00
    /t/256452#reply13

    我是这样想的
    iF2007
        2
    iF2007  
    OP
       2016-02-17 10:53:51 +08:00
    @typcn 「例如数字证书的过期时间,而这个证书验证程序用了 unsigned int 来表示时间,于是这个变量就溢出到了一个奇怪的值,这个证书被判定为过期,系统拒绝了开机。」
    证书不是有有效的起始时间和废止时间么,感觉应该是小于起始时间所以证书无效。另外没想明白 32-bit 设备为什么不被影响
    IgniteWhite
        3
    IgniteWhite  
       2016-02-17 13:11:07 +08:00
    这是科普热?
    iF2007
        4
    iF2007  
    OP
       2016-02-17 13:15:09 +08:00
    @IgniteWhite 只是自己的理解,跟大家一起讨论讨论
    IgniteWhite
        5
    IgniteWhite  
       2016-02-17 13:16:11 +08:00
    @iF2007 我是不懂的,坐等各位科普
    LTanN
        6
    LTanN  
       2016-02-17 14:01:54 +08:00
    OS X  会有这个问题吗?同为 Unix 核
    (鼠标怎么移到了 设置 - 时间)
    可以回到 1969.1.2
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1115 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:55 · PVG 06:55 · LAX 15:55 · JFK 18:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.