From 2ae8ddaa68ee6f67e407987314ea8112e3144908 Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Thu, 25 Feb 2021 22:18:31 -0800 Subject: [PATCH] Specify temp-allowlist reasonCode while calling addPowerSaveTempWhitelistApp(). Deprecate the overloaded addPowerSaveTempWhitelistApp() version that has no reasonCode. Bug: 171305836 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java Reboot device, observe "tempAllowListReason" in logcat. Change-Id: Id8ce4a2ac029b0cf33b2787f601d798f046bf2be BYPASS_INCLUSIVE_LANGUAGE_REASON=Existing public API. --- services/core/java/com/android/server/connectivity/Vpn.java | 4 +++- .../core/java/com/android/server/content/SyncManager.java | 4 +++- .../com/android/server/security/KeyChainSystemService.java | 5 ++++- .../android/server/telecom/InternalServiceRepository.java | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 01ac81fb2cb5a..67f495a455fbc 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -22,6 +22,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; import static android.net.RouteInfo.RTN_THROW; import static android.net.RouteInfo.RTN_UNREACHABLE; import static android.net.VpnManager.NOTIFICATION_CHANNEL_VPN; +import static android.os.PowerWhitelistManager.REASON_VPN; import static com.android.internal.util.Preconditions.checkArgument; import static com.android.internal.util.Preconditions.checkNotNull; @@ -825,7 +826,8 @@ public class Vpn { // a short time, so we can bootstrap the VPN service. DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal(); idleController.addPowerSaveTempWhitelistApp(Process.myUid(), alwaysOnPackage, - VPN_LAUNCH_IDLE_ALLOWLIST_DURATION_MS, mUserId, false, "vpn"); + VPN_LAUNCH_IDLE_ALLOWLIST_DURATION_MS, mUserId, false, REASON_VPN, + "vpn"); // Start the VPN service declared in the app's manifest. Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE); diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 7b9ca37b1639f..ae0e001e8417a 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -16,6 +16,8 @@ package com.android.server.content; +import static android.os.PowerWhitelistManager.REASON_SYNC_MANAGER; + import static com.android.server.content.SyncLogger.logSafe; import android.accounts.Account; @@ -1671,7 +1673,7 @@ public class SyncManager { syncOperation.owningPackage, mConstants.getKeyExemptionTempWhitelistDurationInSeconds() * 1000, UserHandle.getUserId(syncOperation.owningUid), - /* sync=*/ false, "sync by top app"); + /* sync=*/ false, REASON_SYNC_MANAGER, "sync by top app"); } } diff --git a/services/core/java/com/android/server/security/KeyChainSystemService.java b/services/core/java/com/android/server/security/KeyChainSystemService.java index 3c06d0ec79503..edd4a3d7be937 100644 --- a/services/core/java/com/android/server/security/KeyChainSystemService.java +++ b/services/core/java/com/android/server/security/KeyChainSystemService.java @@ -16,6 +16,8 @@ package com.android.server.security; +import static android.os.PowerWhitelistManager.REASON_KEY_CHAIN; + import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; @@ -102,7 +104,8 @@ public class KeyChainSystemService extends SystemService { final DeviceIdleInternal idleController = LocalServices.getService(DeviceIdleInternal.class); idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, - KEYCHAIN_IDLE_WHITELIST_DURATION_MS, user.getIdentifier(), false, "keychain"); + KEYCHAIN_IDLE_WHITELIST_DURATION_MS, user.getIdentifier(), false, + REASON_KEY_CHAIN, "keychain"); getContext().startServiceAsUser(intent, user); } diff --git a/services/core/java/com/android/server/telecom/InternalServiceRepository.java b/services/core/java/com/android/server/telecom/InternalServiceRepository.java index 76ea5c788bd75..bd1746d3fc61f 100644 --- a/services/core/java/com/android/server/telecom/InternalServiceRepository.java +++ b/services/core/java/com/android/server/telecom/InternalServiceRepository.java @@ -16,6 +16,8 @@ package com.android.server.telecom; +import static android.os.PowerWhitelistManager.REASON_UNKNOWN; + import android.content.Context; import android.os.Binder; import android.os.Process; @@ -38,7 +40,7 @@ public class InternalServiceRepository extends IInternalServiceRetriever.Stub { public void exemptAppTemporarilyForEvent(String packageName, long duration, int userHandle, String reason) { mDeviceIdleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName, - duration, userHandle, true /*sync*/, reason); + duration, userHandle, true /*sync*/, REASON_UNKNOWN, reason); } };