Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ae8ddaa authored by Hui Yu's avatar Hui Yu
Browse files

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.
parent 24eadb70
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -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_THROW;
import static android.net.RouteInfo.RTN_UNREACHABLE;
import static android.net.RouteInfo.RTN_UNREACHABLE;
import static android.net.VpnManager.NOTIFICATION_CHANNEL_VPN;
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.checkArgument;
import static com.android.internal.util.Preconditions.checkNotNull;
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.
            // a short time, so we can bootstrap the VPN service.
            DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal();
            DeviceIdleInternal idleController = mDeps.getDeviceIdleInternal();
            idleController.addPowerSaveTempWhitelistApp(Process.myUid(), alwaysOnPackage,
            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.
            // Start the VPN service declared in the app's manifest.
            Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE);
            Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE);
+3 −1
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package com.android.server.content;
package com.android.server.content;


import static android.os.PowerWhitelistManager.REASON_SYNC_MANAGER;

import static com.android.server.content.SyncLogger.logSafe;
import static com.android.server.content.SyncLogger.logSafe;


import android.accounts.Account;
import android.accounts.Account;
@@ -1671,7 +1673,7 @@ public class SyncManager {
                        syncOperation.owningPackage,
                        syncOperation.owningPackage,
                        mConstants.getKeyExemptionTempWhitelistDurationInSeconds() * 1000,
                        mConstants.getKeyExemptionTempWhitelistDurationInSeconds() * 1000,
                        UserHandle.getUserId(syncOperation.owningUid),
                        UserHandle.getUserId(syncOperation.owningUid),
                        /* sync=*/ false, "sync by top app");
                        /* sync=*/ false, REASON_SYNC_MANAGER, "sync by top app");
            }
            }
        }
        }


+4 −1
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package com.android.server.security;
package com.android.server.security;


import static android.os.PowerWhitelistManager.REASON_KEY_CHAIN;

import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Context;
@@ -102,7 +104,8 @@ public class KeyChainSystemService extends SystemService {
        final DeviceIdleInternal idleController =
        final DeviceIdleInternal idleController =
                LocalServices.getService(DeviceIdleInternal.class);
                LocalServices.getService(DeviceIdleInternal.class);
        idleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName,
        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);
        getContext().startServiceAsUser(intent, user);
    }
    }
+3 −1
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package com.android.server.telecom;
package com.android.server.telecom;


import static android.os.PowerWhitelistManager.REASON_UNKNOWN;

import android.content.Context;
import android.content.Context;
import android.os.Binder;
import android.os.Binder;
import android.os.Process;
import android.os.Process;
@@ -38,7 +40,7 @@ public class InternalServiceRepository extends IInternalServiceRetriever.Stub {
        public void exemptAppTemporarilyForEvent(String packageName, long duration, int userHandle,
        public void exemptAppTemporarilyForEvent(String packageName, long duration, int userHandle,
                String reason) {
                String reason) {
            mDeviceIdleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName,
            mDeviceIdleController.addPowerSaveTempWhitelistApp(Process.myUid(), packageName,
                    duration, userHandle, true /*sync*/, reason);
                    duration, userHandle, true /*sync*/, REASON_UNKNOWN, reason);
        }
        }
    };
    };