From 185a29a5a83f20a8bc72f2205470f8f3ff3da5a3 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Wed, 13 Jun 2018 16:56:38 +0100 Subject: [PATCH] Clear calling identity before doing any work This makes sure that the system server is credited/blamed for the logic being executed. Test: (internal) atest FrameworksServicesTests:com.android.server.timedetector Bug: 78217059 Change-Id: Ie2586cf0d983e9aef9371d6db285c8420e9c8dc0 --- .../android/server/timedetector/TimeDetectorService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorService.java b/services/core/java/com/android/server/timedetector/TimeDetectorService.java index efd49b5a2c45e..0ec24d8cfedb3 100644 --- a/services/core/java/com/android/server/timedetector/TimeDetectorService.java +++ b/services/core/java/com/android/server/timedetector/TimeDetectorService.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.app.timedetector.ITimeDetectorService; import android.app.timedetector.TimeSignal; import android.content.Context; +import android.os.Binder; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.DumpUtils; @@ -69,7 +70,13 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub { @Override public void suggestTime(@NonNull TimeSignal timeSignal) { enforceSetTimePermission(); - mTimeDetectorStrategy.suggestTime(timeSignal); + + long callerIdToken = Binder.clearCallingIdentity(); + try { + mTimeDetectorStrategy.suggestTime(timeSignal); + } finally { + Binder.restoreCallingIdentity(callerIdToken); + } } @Override