Android关机重启或更换电池后时间重置的一种解决方法


Android 时间重置 1980最近遭遇两次手机更换电池后时间变为1980年1月6号8点的问题。第一次出现问题后简单恢复出厂设置解决。昨天又遭遇一次,好好折腾一番,发现可能是由Google Play残余缓存文件导致的时间不对。网络上有说wipe battery stats,但不同产商的Recovery模式不同,可能没有这一选项。


主板内置电池没电?

搜索网络得知时间初始化,可能是主板内置电池问题,但觉得不靠谱。现在的技术应该不会这么差吧?我那台05年本本的主板电池都还没出问题了。
从现象上看,以前一切正常,突然出现时间问题,逻辑上判断为主板电池问题也说的通。
但是第一次出现问题时重置ROM后时间问题解决,那么软件的问题应该更明显。


问题现象

判断是软件问题,除了第一次重置ROM解决外,还发现这样一些问题现象:

  1. 无论多快更换电池时间都会出错,同时测试发现仅仅是关机再启动,时间依然错误;
  2. 虽说时间重置到1980年,到后续继续测试更换电池和关机再启动,这个错误的时间依然在运行,这是关键;
  3. 第二次错误发生在更换电池并充电后,Wipe缓存后,时间显示为更换电池之前的时间。

结合两次的错误,差不多发现罪魁祸首了。两次错误发生之前都曾经给系统安装过Google Play的补丁,并很快删除。这是唯一对系统有过更改的地方。


测试解决

  1. 清理补丁残余:

    /data/dalvik-cache/system@app@GoogleServicesFramework.apk@classes.dex
    /data/dalvik-cache/system@app@Vending.apk@classes.dex
    /data/data/com.google.android.gsf
    /data/data/com.android.vending

    因为是Root后直接复制文件,删除也仅仅是删除两个apk文件,两个文件带来的缓存还保残留在系统。不同的补丁文件名会有所不同。

  2. 进入Recovery模式清空缓存分区(如果在删除APK文件同时就清理了残余缓存文件就不需要这一步)。
  3. 关机,重新安装电池,调整时间。

这样折腾一番后,更换电池,关机重启,时间终于都正常了。