diff options
| author | 2023-04-13 07:25:35 +0000 | |
|---|---|---|
| committer | 2023-04-13 07:25:35 +0000 | |
| commit | 502a27317c575aad287f869739e7ee96c4cc9564 (patch) | |
| tree | 769339b37c0273d2941c0214f95d8fbb8c92bb97 | |
| parent | 209bc17b27deb0aef99e9e7997f261e4765a693a (diff) | |
| parent | e233c0dc294821fb11f2fa550edaca7a875a09a7 (diff) | |
Merge "Clear calling identity before calling to DeviceIdleController" am: 6216ab81c1 am: bc0f38ed9e am: e233c0dc29
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2529739
Change-Id: I792f370e7e86daa58f7b609d1e937bafec901882
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 7e48f68dcefc..0f17139e2678 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -969,15 +969,21 @@ public class Vpn { // Allow VpnManager app to temporarily run background services to handle this error. // If an app requires anything beyond this grace period, they MUST either declare // themselves as a foreground service, or schedule a job/workitem. - DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal(); - idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, - VPN_MANAGER_EVENT_ALLOWLIST_DURATION_MS, mUserId, false, REASON_VPN, - "VpnManager event"); + final long token = Binder.clearCallingIdentity(); try { - return mUserIdContext.startService(intent) != null; - } catch (RuntimeException e) { - Log.e(TAG, "Service of VpnManager app " + intent + " failed to start", e); - return false; + final DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal(); + idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, + VPN_MANAGER_EVENT_ALLOWLIST_DURATION_MS, mUserId, false, REASON_VPN, + "VpnManager event"); + + try { + return mUserIdContext.startService(intent) != null; + } catch (RuntimeException e) { + Log.e(TAG, "Service of VpnManager app " + intent + " failed to start", e); + return false; + } + } finally { + Binder.restoreCallingIdentity(token); } } |