From 64ba8e4038ade025da5e02f882219432d6bf1016 Mon Sep 17 00:00:00 2001 From: Robert CH Chou Date: Wed, 4 Nov 2009 21:38:49 +0800 Subject: [PATCH] Fix time zone info in kernel is nothing after reboot If sys_tz is not set correctly, the timestamp of filesystem will be in-consistent with android's time, until time zone is set from android's UI. Set kernel timezone while initializing AlarmManagerService. Change-Id: Ic85def954fc9388e943e3dee45767d8179825a49 --- services/java/com/android/server/AlarmManagerService.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index e088417a40d56..8852cc3664068 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -122,6 +122,14 @@ class AlarmManagerService extends IAlarmManager.Stub { public AlarmManagerService(Context context) { mContext = context; mDescriptor = init(); + + // We have to set current TimeZone info to kernel + // because kernel doesn't keep this after reboot + String tz = SystemProperties.get(TIMEZONE_PROPERTY); + if (tz != null) { + setTimeZone(tz); + } + PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);