diff options
| author | 2023-11-14 13:25:08 -0800 | |
|---|---|---|
| committer | 2023-11-17 12:00:05 -0800 | |
| commit | e4d003055b28267e954efa79fc9308c3286a4956 (patch) | |
| tree | 26eeeda3cbed42ad92edaa904a48889d4f241abe | |
| parent | e1aa484cb5d29d4d2028fc309cf0ac56090ed6a0 (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.java | 6 |
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(); } } |