From bdf7b5dc788d09952f372474bb894cc832b234ee Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Wed, 12 Oct 2022 21:20:36 +0100 Subject: [PATCH] Fix permission issues for network update service Fix permission issues for network update service command-line commands used in tests. Bug: 251726675 Test: atest android.os.cts.SystemClockSntpTest Change-Id: I8a34c801d82c769fd8d06e5b0b3177ce92b5f072 --- .../NetworkTimeUpdateService.java | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/services/core/java/com/android/server/timedetector/NetworkTimeUpdateService.java b/services/core/java/com/android/server/timedetector/NetworkTimeUpdateService.java index 4803011ae4f53..b96af89fad299 100644 --- a/services/core/java/com/android/server/timedetector/NetworkTimeUpdateService.java +++ b/services/core/java/com/android/server/timedetector/NetworkTimeUpdateService.java @@ -172,9 +172,14 @@ public class NetworkTimeUpdateService extends Binder { 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); + } } /** @@ -188,15 +193,19 @@ public class NetworkTimeUpdateService extends Binder { 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; } /** @@ -207,8 +216,13 @@ public class NetworkTimeUpdateService extends Binder { mContext.enforceCallingPermission( android.Manifest.permission.SET_TIME, "set NTP server config for tests"); - mLocalLog.log("Setting server config for tests: ntpConnectionInfo=" + ntpConfig); - mTime.setServerConfigForTests(ntpConfig); + final long token = Binder.clearCallingIdentity(); + try { + mLocalLog.log("Setting server config for tests: ntpConnectionInfo=" + ntpConfig); + mTime.setServerConfigForTests(ntpConfig); + } finally { + Binder.restoreCallingIdentity(token); + } } private void onPollNetworkTime(int event) {