summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sumedh Sen <sumedhsen@google.com> 2023-11-14 13:25:08 -0800
committer Sumedh Sen <sumedhsen@google.com> 2023-11-17 12:00:05 -0800
commite4d003055b28267e954efa79fc9308c3286a4956 (patch)
tree26eeeda3cbed42ad92edaa904a48889d4f241abe
parente1aa484cb5d29d4d2028fc309cf0ac56090ed6a0 (diff)
Add more checks to isFilterStopped
A system app is considered as stopped only if it was initially scanned in the stopped state (during first boot). For all other cases, a stopped system app should not be considered as stopped, while resolving intents Bug: 295084647 Bug: 297788394 Bug: 294330522 Bug: 296180087 Bug: 297360102 Test: manual. Test: Follow repro steps in b/294330522 Change-Id: I21a121cae542a1381361ffec5715a6fab8040379
-rw-r--r--services/core/java/com/android/server/pm/resolution/ComponentResolver.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
index 0ceda421913d..c4a18547c232 100644
--- a/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
+++ b/services/core/java/com/android/server/pm/resolution/ComponentResolver.java
@@ -943,6 +943,12 @@ public class ComponentResolver extends ComponentResolverLocked implements
return false;
}
+ if (packageState.isSystem()) {
+ // A system app can be considered in the stopped state only if it was originally
+ // scanned in the stopped state.
+ return packageState.isScannedAsStoppedSystemApp() &&
+ packageState.getUserStateOrDefault(userId).isStopped();
+ }
return packageState.getUserStateOrDefault(userId).isStopped();
}
}