minimaluminium
V2EX  ›  iOS

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

  •  
  •   minimaluminium · Feb 17, 2016 · 2596 views
    This topic created in 3749 days ago, the information mentioned may be changed or developed.

    关于最近很热的 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 replies    2016-02-17 14:01:54 +08:00
    typcn
        1
    typcn  
       Feb 17, 2016
    /t/256452#reply13

    我是这样想的
    minimaluminium
        2
    minimaluminium  
    OP
       Feb 17, 2016
    @typcn 「例如数字证书的过期时间,而这个证书验证程序用了 unsigned int 来表示时间,于是这个变量就溢出到了一个奇怪的值,这个证书被判定为过期,系统拒绝了开机。」
    证书不是有有效的起始时间和废止时间么,感觉应该是小于起始时间所以证书无效。另外没想明白 32-bit 设备为什么不被影响
    FurN1
        3
    FurN1  
       Feb 17, 2016
    这是科普热?
    minimaluminium
        4
    minimaluminium  
    OP
       Feb 17, 2016
    @IgniteWhite 只是自己的理解,跟大家一起讨论讨论
    FurN1
        5
    FurN1  
       Feb 17, 2016
    @iF2007 我是不懂的,坐等各位科普
    LTanN
        6
    LTanN  
       Feb 17, 2016
    OS X  会有这个问题吗?同为 Unix 核
    (鼠标怎么移到了 设置 - 时间)
    可以回到 1969.1.2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1070 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 18:06 · PVG 02:06 · LAX 11:06 · JFK 14:06
    ♥ Do have faith in what you're doing.