关于最近很热的 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 过程。
欢迎一起探讨