summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/BackgroundActivityStartController.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
index 2788342cb097..933633836e56 100644
--- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
+++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
@@ -853,8 +853,7 @@ public class BackgroundActivityStartController {
}
// don't abort if the callingUid has START_ACTIVITIES_FROM_BACKGROUND permission
- if (ActivityTaskManagerService.checkPermission(START_ACTIVITIES_FROM_BACKGROUND,
- callingPid, callingUid) == PERMISSION_GRANTED) {
+ if (hasBalPermission(callingUid, callingPid)) {
return new BalVerdict(BAL_ALLOW_PERMISSION,
/*background*/ true,
"START_ACTIVITIES_FROM_BACKGROUND permission granted");
@@ -919,9 +918,7 @@ public class BackgroundActivityStartController {
BalVerdict checkBackgroundActivityStartAllowedBySender(BalState state) {
if (state.isPendingIntentBalAllowedByPermission()
- && ActivityManager.checkComponentPermission(
- android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND,
- state.mRealCallingUid, NO_PROCESS_UID, true) == PackageManager.PERMISSION_GRANTED) {
+ && hasBalPermission(state.mRealCallingUid, state.mRealCallingPid)) {
return new BalVerdict(BAL_ALLOW_PERMISSION,
/*background*/ false,
"realCallingUid has BAL permission.");
@@ -980,6 +977,11 @@ public class BackgroundActivityStartController {
return BalVerdict.BLOCK;
}
+ @VisibleForTesting boolean hasBalPermission(int uid, int pid) {
+ return ActivityTaskManagerService.checkPermission(START_ACTIVITIES_FROM_BACKGROUND,
+ pid, uid) == PERMISSION_GRANTED;
+ }
+
/**
* Check if the app allows BAL.
* <p>