From 67507d9f9dfe806edbb72dccf0c54850844c73fc Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 12 Nov 2015 16:21:05 -0800 Subject: [PATCH] Drop binder identity before setting widget provider refresh alarm Bug 25607336 Change-Id: I645b79c01206baa548d1d58cf9712ac1768e3b5b --- .../server/appwidget/AppWidgetServiceImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 02b5b8a90fc22..25fef1870ddaa 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -79,10 +79,11 @@ import com.android.internal.os.SomeArgs; import com.android.internal.util.FastXmlSerializer; import com.android.internal.widget.IRemoteViewsAdapterConnection; import com.android.internal.widget.IRemoteViewsFactory; - import com.android.server.LocalServices; import com.android.server.WidgetBackupProvider; + import libcore.io.IoUtils; + import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; @@ -1954,8 +1955,13 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku if (period < MIN_UPDATE_PERIOD) { period = MIN_UPDATE_PERIOD; } - mAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, - SystemClock.elapsedRealtime() + period, period, provider.broadcast); + final long oldId = Binder.clearCallingIdentity(); + try { + mAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, + SystemClock.elapsedRealtime() + period, period, provider.broadcast); + } finally { + Binder.restoreCallingIdentity(oldId); + } } } }