Fixes query logic when not instant
What should have been the final branch of an if / else if sequence was broken from it and so VISIBLE_TO_INSTANT activities were being made visible to normal packages targetting R. This change fixes that. Fixes: 151696596 Test: atest AppEnumerationTests Change-Id: I8e60c52a1e917d56d2714fed049788439bd2acc6
This commit is contained in:
@@ -7240,8 +7240,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
resolveInfos.set(i, installerInfo);
|
||||
continue;
|
||||
}
|
||||
// caller is a full app
|
||||
if (ephemeralPkgName == null) {
|
||||
// caller is a full app
|
||||
SettingBase callingSetting =
|
||||
mSettings.getSettingLPr(UserHandle.getAppId(filterCallingUid));
|
||||
PackageSetting resolvedSetting =
|
||||
@@ -7261,11 +7261,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
&& intent.getComponent() == null) {
|
||||
// ephemeral apps can launch other ephemeral apps indirectly
|
||||
continue;
|
||||
}
|
||||
// allow activities that have been explicitly exposed to ephemeral apps
|
||||
final boolean isEphemeralApp = info.activityInfo.applicationInfo.isInstantApp();
|
||||
if (!isEphemeralApp
|
||||
&& ((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)) {
|
||||
} else if (((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)
|
||||
&& !info.activityInfo.applicationInfo.isInstantApp()) {
|
||||
// allow activities that have been explicitly exposed to ephemeral apps
|
||||
continue;
|
||||
}
|
||||
resolveInfos.remove(i);
|
||||
|
||||
Reference in New Issue
Block a user