summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-07-21 21:07:38 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-07-21 21:07:38 +0000
commita26040cd27f578b99acc6e385232020fe3c68581 (patch)
tree0c175a74c8ae74729d983f6097c3eeba83ed5234
parent66cdf11180f2416d1e8cce2bb1e8858fba410263 (diff)
parent85b959f4781e1654d0fe2c18c1570359ba8c2bfa (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.java9
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) {