Merge "Generalize canPackageQuery error message" into tm-dev am: 96ad5ccad9 am: 98aee8d4dc

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18358288

Change-Id: I10b85d12f647449233fd3d80a725f19786856763
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Winson Chiu
2022-05-18 21:50:24 +00:00
committed by Automerger Merge Worker

View File

@@ -5443,22 +5443,18 @@ public class ComputerEngine implements Computer {
false /*checkShell*/, "may package query");
final PackageStateInternal sourceSetting = getPackageStateInternal(sourcePackageName);
final PackageStateInternal targetSetting = getPackageStateInternal(targetPackageName);
if (sourceSetting == null || targetSetting == null) {
throw new ParcelableException(new PackageManager.NameNotFoundException("Package(s) "
+ (sourceSetting == null ? sourcePackageName + " " : "")
+ (targetSetting == null ? targetPackageName + " " : "")
+ "not found."));
boolean throwException = sourceSetting == null || targetSetting == null;
if (!throwException) {
final boolean filterSource =
shouldFilterApplication(sourceSetting, callingUid, userId);
final boolean filterTarget =
shouldFilterApplication(targetSetting, callingUid, userId);
// The caller must have visibility of the both packages
throwException = filterSource || filterTarget;
}
final boolean filterSource =
shouldFilterApplication(sourceSetting, callingUid, userId);
final boolean filterTarget =
shouldFilterApplication(targetSetting, callingUid, userId);
// The caller must have visibility of the both packages
if (filterSource || filterTarget) {
if (throwException) {
throw new ParcelableException(new PackageManager.NameNotFoundException("Package(s) "
+ (filterSource ? sourcePackageName + " " : "")
+ (filterTarget ? targetPackageName + " " : "")
+ "not found."));
+ sourcePackageName + " and/or " + targetPackageName + " not found."));
}
final int sourcePackageUid = UserHandle.getUid(userId, sourceSetting.getAppId());
return !shouldFilterApplication(targetSetting, sourcePackageUid, userId);