Go one day into 1970 for timezone code.

Change-Id: I80251de79db6684ef3fa1ec835b400d9e3547401
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index a7785e2..26071ae 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -578,6 +578,10 @@
     static Timer timer;
     static final long SNAPSHOT_INTERVAL = 60 * 60 * 1000; // 1hr
 
+    // 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;
+
     /**
      * This method is called from Zygote to initialize the system. This will cause the native
      * services (SurfaceFlinger, AudioFlinger, etc..) to be started. After that it will call back
@@ -586,14 +590,14 @@
     native public static void init1(String[] args);
 
     public static void main(String[] args) {
-        if (System.currentTimeMillis() < 0) {
+        if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
             // If a device's clock is before 1970 (before 0), a lot of
             // 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.
             Slog.w(TAG, "System clock is before 1970; setting to 1970.");
-            SystemClock.setCurrentTimeMillis(1);  // 0 isn't allowed
+            SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
         }
 
         if (SamplingProfilerIntegration.isEnabled()) {