Loading services/core/java/com/android/server/location/provider/LocationProviderManager.java +6 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static android.os.PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF import static android.os.PowerManager.LOCATION_MODE_FOREGROUND_ONLY; import static android.os.PowerManager.LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF; import static android.os.PowerManager.LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF; import static android.os.PowerWhitelistManager.REASON_LOCATION_PROVIDER; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static com.android.server.location.LocationManagerService.D; import static com.android.server.location.LocationManagerService.TAG; Loading Loading @@ -227,7 +229,10 @@ public class LocationProviderManager extends BroadcastOptions options = BroadcastOptions.makeBasic(); options.setDontSendToRestrictedApps(true); // allows apps to start a fg service in response to a location PI options.setTemporaryAppWhitelistDuration(TEMPORARY_APP_ALLOWLIST_DURATION_MS); options.setTemporaryAppAllowlist(TEMPORARY_APP_ALLOWLIST_DURATION_MS, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_LOCATION_PROVIDER, ""); Intent intent = new Intent().putExtra(KEY_LOCATION_CHANGED, locationResult.getLastLocation()); Loading services/core/java/com/android/server/media/MediaButtonReceiverHolder.java +4 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Handler; import android.os.PowerWhitelistManager; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -195,8 +196,9 @@ final class MediaButtonReceiverHolder { mediaButtonIntent.putExtra(Intent.EXTRA_PACKAGE_NAME, callingPackageName); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration( FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS); options.setTemporaryAppAllowlist(FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS, PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, PowerWhitelistManager.REASON_MEDIA_BUTTON, ""); if (mPendingIntent != null) { if (DEBUG_KEY_EVENT) { Log.d(TAG, "Sending " + keyEvent + " to the last known PendingIntent " Loading services/core/java/com/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1.java +8 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.pm.verify.domain.proxy; import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V1; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -238,7 +241,8 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy { final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration(); mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(), mVerifierComponent.getPackageName(), allowListTimeout, UserHandle.USER_SYSTEM, true, "domain verification agent"); UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V1, "domain verification agent"); int size = verifications.size(); for (int index = 0; index < size; index++) { Loading @@ -261,7 +265,9 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy { .addFlags(Intent.FLAG_RECEIVER_FOREGROUND); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration(allowListTimeout); options.setTemporaryAppAllowlist(allowListTimeout, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_DOMAIN_VERIFICATION_V1, ""); mContext.sendBroadcastAsUser(intent, UserHandle.SYSTEM, null, options.toBundle()); } } Loading services/core/java/com/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2.java +8 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.pm.verify.domain.proxy; import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V2; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.BroadcastOptions; Loading Loading @@ -69,11 +72,14 @@ public class DomainVerificationProxyV2 implements DomainVerificationProxy { final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration(); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration(allowListTimeout); options.setTemporaryAppAllowlist(allowListTimeout, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_DOMAIN_VERIFICATION_V2, ""); mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(), mVerifierComponent.getPackageName(), allowListTimeout, UserHandle.USER_SYSTEM, true, "domain verification agent"); UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V2, "domain verification agent"); Intent intent = new Intent(Intent.ACTION_DOMAINS_NEED_VERIFICATION) .setComponent(mVerifierComponent) Loading services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationProxyTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -477,7 +477,7 @@ class DomainVerificationProxyTest { whenever( addPowerSaveTempWhitelistApp( anyInt(), anyString(), anyLong(), anyInt(), anyBoolean(), anyString() anyBoolean(), anyInt(), anyString() ) ) } Loading Loading
services/core/java/com/android/server/location/provider/LocationProviderManager.java +6 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static android.os.PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF import static android.os.PowerManager.LOCATION_MODE_FOREGROUND_ONLY; import static android.os.PowerManager.LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF; import static android.os.PowerManager.LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF; import static android.os.PowerWhitelistManager.REASON_LOCATION_PROVIDER; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import static com.android.server.location.LocationManagerService.D; import static com.android.server.location.LocationManagerService.TAG; Loading Loading @@ -227,7 +229,10 @@ public class LocationProviderManager extends BroadcastOptions options = BroadcastOptions.makeBasic(); options.setDontSendToRestrictedApps(true); // allows apps to start a fg service in response to a location PI options.setTemporaryAppWhitelistDuration(TEMPORARY_APP_ALLOWLIST_DURATION_MS); options.setTemporaryAppAllowlist(TEMPORARY_APP_ALLOWLIST_DURATION_MS, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_LOCATION_PROVIDER, ""); Intent intent = new Intent().putExtra(KEY_LOCATION_CHANGED, locationResult.getLastLocation()); Loading
services/core/java/com/android/server/media/MediaButtonReceiverHolder.java +4 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Handler; import android.os.PowerWhitelistManager; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -195,8 +196,9 @@ final class MediaButtonReceiverHolder { mediaButtonIntent.putExtra(Intent.EXTRA_PACKAGE_NAME, callingPackageName); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration( FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS); options.setTemporaryAppAllowlist(FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS, PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, PowerWhitelistManager.REASON_MEDIA_BUTTON, ""); if (mPendingIntent != null) { if (DEBUG_KEY_EVENT) { Log.d(TAG, "Sending " + keyEvent + " to the last known PendingIntent " Loading
services/core/java/com/android/server/pm/verify/domain/proxy/DomainVerificationProxyV1.java +8 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.pm.verify.domain.proxy; import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V1; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; Loading Loading @@ -238,7 +241,8 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy { final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration(); mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(), mVerifierComponent.getPackageName(), allowListTimeout, UserHandle.USER_SYSTEM, true, "domain verification agent"); UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V1, "domain verification agent"); int size = verifications.size(); for (int index = 0; index < size; index++) { Loading @@ -261,7 +265,9 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy { .addFlags(Intent.FLAG_RECEIVER_FOREGROUND); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration(allowListTimeout); options.setTemporaryAppAllowlist(allowListTimeout, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_DOMAIN_VERIFICATION_V1, ""); mContext.sendBroadcastAsUser(intent, UserHandle.SYSTEM, null, options.toBundle()); } } Loading
services/core/java/com/android/server/pm/verify/domain/proxy/DomainVerificationProxyV2.java +8 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.pm.verify.domain.proxy; import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V2; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.BroadcastOptions; Loading Loading @@ -69,11 +72,14 @@ public class DomainVerificationProxyV2 implements DomainVerificationProxy { final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration(); final BroadcastOptions options = BroadcastOptions.makeBasic(); options.setTemporaryAppWhitelistDuration(allowListTimeout); options.setTemporaryAppAllowlist(allowListTimeout, TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_DOMAIN_VERIFICATION_V2, ""); mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(), mVerifierComponent.getPackageName(), allowListTimeout, UserHandle.USER_SYSTEM, true, "domain verification agent"); UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V2, "domain verification agent"); Intent intent = new Intent(Intent.ACTION_DOMAINS_NEED_VERIFICATION) .setComponent(mVerifierComponent) Loading
services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationProxyTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -477,7 +477,7 @@ class DomainVerificationProxyTest { whenever( addPowerSaveTempWhitelistApp( anyInt(), anyString(), anyLong(), anyInt(), anyBoolean(), anyString() anyBoolean(), anyInt(), anyString() ) ) } Loading