Ensure the system boots with a halfway sane time/date
Just in case the kernel or vendor glue don't initialize the system time sensibly, we now make sure the current time at boot is at least up to the build time of the system disk image. Bug 36736983 Test: manual Change-Id: I46f776300ca4f5ad01396fc17c83fc833e1713f9
This commit is contained in:
@@ -36,6 +36,7 @@ import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.Message;
|
||||
@@ -949,6 +950,16 @@ class AlarmManagerService extends SystemService {
|
||||
// because kernel doesn't keep this after reboot
|
||||
setTimeZoneImpl(SystemProperties.get(TIMEZONE_PROPERTY));
|
||||
|
||||
// Also sure that we're booting with a halfway sensible current time
|
||||
if (mNativeData != 0) {
|
||||
final long systemBuildTime = Environment.getRootDirectory().lastModified();
|
||||
if (System.currentTimeMillis() < systemBuildTime) {
|
||||
Slog.i(TAG, "Current time only " + System.currentTimeMillis()
|
||||
+ ", advancing to build time " + systemBuildTime);
|
||||
setKernelTime(mNativeData, systemBuildTime);
|
||||
}
|
||||
}
|
||||
|
||||
PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
|
||||
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*alarm*");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user