问题:客户有时候问能不能系统默认时间就是实时的?
答:哈哈 当然是不行的 那岂不是是个定时炸弹了
但------可以把日期修改为近期!
代码路径:frameworks/base/services/java/com/android/server/SystemServer.java
修改 private static final long EARLIEST_SUPPORTED_TIME的值即可
当然很多小伙伴不清楚这些对应时间的值如何获取 其实很简单:
利用Linux的date命令即可
使用date命令输出当前时间戳的示例代码如下
输入:date +%s
输出:1718362676
将时间戳转换为日期时间的命令示例代码如下
输入:date -d @1718362676
输出:2024年 06月 14日 星期五 18:57:56 CST
在Android6和Android7上直接修改这个值可能无法生效,可修改在startOtherServices();之后
--- a/frameworks/base/services/java/com/android/server/SystemServer.java
+++ b/frameworks/base/services/java/com/android/server/SystemServer.java
@@ -168,7 +168,9 @@ public final class SystemServer {
// The earliest supported time. We pick one day into 1970, to
// give any timezone code room without going into negative time.
- private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
+ //private static final long EARLIEST_SUPPORTED_TIME = 1720691573 * 1000;
+ private static final long EARLIEST_SUPPORTED_TIME_TEMP = 1720691573L * 1000;
+ private static final long EARLIEST_SUPPORTED_TIME = 1720691573000L;
/*
* Implementation class names. TODO: Move them to a codegen class or load
@@ -292,10 +294,10 @@ public final class SystemServer {
// APIs crash dealing with negative numbers, notably
// java.io.File#setLastModified, so instead we fake it and
// hope that time from cell towers or NTP fixes it shortly.
- if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
- Slog.w(TAG, "System clock is before 1970; setting to 1970.");
- SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
- }
+ // if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
+ // Slog.w(TAG, "System clock is before 1970; setting to 1970.");
+ // SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
+ // }
// If the system has "persist.sys.language" and friends set, replace them with
// "persist.sys.locale". Note that the default locale at this point is calculated
@@ -406,6 +408,12 @@ public final class SystemServer {
startBootstrapServices();
startCoreServices();
startOtherServices();
+
+ Slog.w("hqb", "bll----BBBBBBB=EARLIEST_SUPPORTED_TIME="+EARLIEST_SUPPORTED_TIME);
+ if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
+ Slog.w(TAG, "System clock is before 1970; setting to 1970.");
+ SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
+ }
} catch (Throwable ex) {
Slog.e("System", "******************************************");
Slog.e("System", "************ Failure starting system services", ex);