Merge "Fix permission issues for network update service" am: 1aed0289c9 am: f240a52f52

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2253795

Change-Id: I305e3521f6431df4f65e557b5f2c779f346ceee5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/services/core/java/com/android/server/NetworkTimeUpdateService.java b/services/core/java/com/android/server/NetworkTimeUpdateService.java
index 2015dc9..804d7f3 100644
--- a/services/core/java/com/android/server/NetworkTimeUpdateService.java
+++ b/services/core/java/com/android/server/NetworkTimeUpdateService.java
@@ -165,9 +165,14 @@
         mContext.enforceCallingPermission(
                 android.Manifest.permission.SET_TIME, "clear latest network time");
 
-        mTime.clearCachedTimeResult();
+        final long token = Binder.clearCallingIdentity();
+        try {
+            mTime.clearCachedTimeResult();
 
-        mLocalLog.log("clearTimeForTests");
+            mLocalLog.log("clearTimeForTests");
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
     /**
@@ -181,15 +186,19 @@
         mContext.enforceCallingPermission(
                 android.Manifest.permission.SET_TIME, "force network time refresh");
 
-        boolean success = mTime.forceRefresh();
-        mLocalLog.log("forceRefreshForTests: success=" + success);
+        final long token = Binder.clearCallingIdentity();
+        try {
+            boolean success = mTime.forceRefresh();
+            mLocalLog.log("forceRefreshForTests: success=" + success);
 
-        if (success) {
-            makeNetworkTimeSuggestion(mTime.getCachedTimeResult(),
-                    "Origin: NetworkTimeUpdateService: forceRefreshForTests");
+            if (success) {
+                makeNetworkTimeSuggestion(mTime.getCachedTimeResult(),
+                        "Origin: NetworkTimeUpdateService: forceRefreshForTests");
+            }
+            return success;
+        } finally {
+            Binder.restoreCallingIdentity(token);
         }
-
-        return success;
     }
 
     /**
@@ -201,10 +210,15 @@
         mContext.enforceCallingPermission(
                 android.Manifest.permission.SET_TIME, "set NTP server config for tests");
 
-        mLocalLog.log("Setting server config for tests: hostname=" + hostname
-                + ", port=" + port
-                + ", timeout=" + timeout);
-        mTime.setServerConfigForTests(hostname, port, timeout);
+        final long token = Binder.clearCallingIdentity();
+        try {
+            mLocalLog.log("Setting server config for tests: hostname=" + hostname
+                    + ", port=" + port
+                    + ", timeout=" + timeout);
+            mTime.setServerConfigForTests(hostname, port, timeout);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
     private void onPollNetworkTime(int event) {