diff options
| author | 2023-07-21 21:07:38 +0000 | |
|---|---|---|
| committer | 2023-07-21 21:07:38 +0000 | |
| commit | a26040cd27f578b99acc6e385232020fe3c68581 (patch) | |
| tree | 0c175a74c8ae74729d983f6097c3eeba83ed5234 | |
| parent | 66cdf11180f2416d1e8cce2bb1e8858fba410263 (diff) | |
| parent | 85b959f4781e1654d0fe2c18c1570359ba8c2bfa (diff) | |
Merge changes Ie865aba7,Ic51a9ceb into udc-dev am: 85b959f478
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24134363
Change-Id: I61d56455569f699fe3e7f43ad5b9200295e0d7df
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 2b55a612a7ad..fbd54555dbbf 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -4300,7 +4300,8 @@ final class InstallPackageHelper { // - It's an APEX or overlay package since stopped state does not affect them. // - It is enumerated with a <initial-package-state> tag having the stopped attribute // set to false - // - It doesn't have a launcher entry which means the user doesn't have a way to unstop it + // - It doesn't have an enabled and exported launcher activity, which means the user + // wouldn't have a way to un-stop it final boolean isApexPkg = (scanFlags & SCAN_AS_APEX) != 0; if (mPm.mShouldStopSystemPackagesByDefault && scanSystemPartition @@ -4326,7 +4327,11 @@ final class InstallPackageHelper { categories.add(Intent.CATEGORY_LAUNCHER); final List<ParsedActivity> activities = parsedPackage.getActivities(); for (int indexActivity = 0; indexActivity < activities.size(); indexActivity++) { - final List<ParsedIntentInfo> intents = activities.get(indexActivity).getIntents(); + final ParsedActivity activity = activities.get(indexActivity); + if (!activity.isEnabled() || !activity.isExported()) { + continue; + } + final List<ParsedIntentInfo> intents = activity.getIntents(); for (int indexIntent = 0; indexIntent < intents.size(); indexIntent++) { final IntentFilter intentFilter = intents.get(indexIntent).getIntentFilter(); if (intentFilter != null && intentFilter.matchCategories(categories) == null) { |