手动设置系统时间分析定位:
1.frameworks/base/services/core/java/com/android/server/AlarmManagerService.java
1.产品编译信息信息:adb shell getprop | grep date
获取:"ro.build.date.utc"的值
2.查看system分区时间:adb shell -> ls -al
如:drwxr-xr-x 1 root root 3488 2020-09-17 17:41 system
3.重启后adb logcat > mainlog,包含 Current time only 1600318891240, advancing to build time 1600335717000 类似信息。
4.通过 date -d @1600335717 (@xx,xx以s为单位)时间戳转换为时间。
总结:Android 10.0源码,不支持设置时间比版本时间早,重启会被置回编译时间。
问题2:平板关机重启前后,拍照后图片顺序不正确
问题分析进展:1.复现步骤:恢复出厂设置,“使用网络提供的时间”默认开关为打开状态,等待一会,重启之后,系统时间恢复到版本时间。
2.问题初步分析:只要设置过一次时间,不会出现问题。具体原因在定位中。
3.已给高通提case,正在分析定位。
在Pro与其他机器上也可复现,与高通沟通,此问题属于正常现象,方案设计如此,没有进行socket存储。高通认为非问题,用户拿到产品系统版本时间远早于当前时间,用户需要修改时间。
已给高通提case,case num:04851836
与高通沟通如下,此问题属于正常现象,方案设计如此。因此申请wont do。
关键日志:
AlarmManager|UsageStatsService:|UsageStatsDatabase:|TimeService:|ConditionProviders.SCP
frameworks/base/services/usage/java/com/android/server/usage/UsageStatsService.java
public void reportEvent(String packageName, int userId, int eventType)
checkAndGetTimeLocked()
service.onTimeChanged(expectedSystemTime, actualSystemTime);