diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index c5661a3dc253f..a29b1f8f39ca4 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -5284,9 +5284,10 @@ public class ComputerEngine implements Computer { return false; } final AndroidPackage pkg = mPackages.get(packageName); + final int callingUserId = UserHandle.getUserId(callingUid); if (pkg == null - || shouldFilterApplication(getPackageStateInternal(pkg.getPackageName()), - callingUid, UserHandle.getUserId(callingUid))) { + || shouldFilterApplicationIncludingUninstalled( + getPackageStateInternal(pkg.getPackageName()), callingUid, callingUserId)) { Slog.w(TAG, "KeySet requested for unknown package: " + packageName); throw new IllegalArgumentException("Unknown package: " + packageName); } @@ -5308,9 +5309,10 @@ public class ComputerEngine implements Computer { return false; } final AndroidPackage pkg = mPackages.get(packageName); + final int callingUserId = UserHandle.getUserId(callingUid); if (pkg == null - || shouldFilterApplication(getPackageStateInternal(pkg.getPackageName()), - callingUid, UserHandle.getUserId(callingUid))) { + || shouldFilterApplicationIncludingUninstalled( + getPackageStateInternal(pkg.getPackageName()), callingUid, callingUserId)) { Slog.w(TAG, "KeySet requested for unknown package: " + packageName); throw new IllegalArgumentException("Unknown package: " + packageName); } diff --git a/services/tests/PackageManagerServiceTests/appenumeration/Android.bp b/services/tests/PackageManagerServiceTests/appenumeration/Android.bp index 479ef8e5f1880..cdb6324988bea 100644 --- a/services/tests/PackageManagerServiceTests/appenumeration/Android.bp +++ b/services/tests/PackageManagerServiceTests/appenumeration/Android.bp @@ -30,6 +30,7 @@ android_test { "compatibility-device-util-axt", "androidx.test.runner", "truth-prebuilt", + "Harrier", ], platform_apis: true, test_suites: ["device-tests"], diff --git a/services/tests/PackageManagerServiceTests/appenumeration/AndroidManifest.xml b/services/tests/PackageManagerServiceTests/appenumeration/AndroidManifest.xml index 2039aaa20945c..0395aa8a1db62 100644 --- a/services/tests/PackageManagerServiceTests/appenumeration/AndroidManifest.xml +++ b/services/tests/PackageManagerServiceTests/appenumeration/AndroidManifest.xml @@ -16,7 +16,15 @@ --> + xmlns:tools="http://schemas.android.com/tools" + package="com.android.server.pm.test.appenumeration"> + + + + + + +