diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 6c59505c8dd0b..f2eee14d522f8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7181,16 +7181,13 @@ public class PackageManagerService extends IPackageManager.Stub */ private List applyPostResolutionFilter(List resolveInfos, String ephemeralPkgName) { - // TODO: When adding on-demand split support for non-instant apps, remove this check - // and always apply post filtering - if (ephemeralPkgName == null) { - return resolveInfos; - } for (int i = resolveInfos.size() - 1; i >= 0; i--) { final ResolveInfo info = resolveInfos.get(i); final boolean isEphemeralApp = info.activityInfo.applicationInfo.isInstantApp(); + // TODO: When adding on-demand split support for non-instant apps, remove this check + // and always apply post filtering // allow activities that are defined in the provided package - if (isEphemeralApp && ephemeralPkgName.equals(info.activityInfo.packageName)) { + if (isEphemeralApp) { if (info.activityInfo.splitName != null && !ArrayUtils.contains(info.activityInfo.applicationInfo.splitNames, info.activityInfo.splitName)) { @@ -7215,6 +7212,10 @@ public class PackageManagerService extends IPackageManager.Stub } continue; } + // caller is a full app, don't need to apply any other filtering + if (ephemeralPkgName == null) { + continue; + } // allow activities that have been explicitly exposed to ephemeral apps if (!isEphemeralApp && ((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)) {