猜想: BUG 在重启之前并没有触发,表明 kernel 和所有的用户态软件都是可以接受这个负时间值的,而且正常的开机流程并不会触发白底的界面,判断白底的界面是用代码手工 show 出来的,这更像是代码手动拒绝了开机,可能性比较大的就是开机的时候会验证一些东西,例如数字证书的过期时间,而这个证书验证程序用了 unsigned int 来表示时间,于是这个变量就溢出到了一个奇怪的值,这个证书被判定为过期,系统拒绝了开机。
拆了电池再装上能开机的原因应该是时间被重设到了 0 等几个小时能开机就证明了硬件时钟也是 signed int