diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 730b22a333afc..845563ba7799d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4212,11 +4212,11 @@ public class PackageManagerService extends IPackageManager.Stub // reader final AndroidPackage p = mPackages.get(packageName); if (p != null && AndroidPackageUtils.isMatchForSystemOnly(p, flags)) { - PackageSetting ps = getPackageSettingInternal(p.getPackageName(), callingUid); - if (shouldFilterApplicationLocked(ps, callingUid, userId)) { - return -1; + final PackageSetting ps = getPackageSettingInternal(p.getPackageName(), callingUid); + if (ps != null && ps.getInstalled(userId) + && !shouldFilterApplicationLocked(ps, callingUid, userId)) { + return UserHandle.getUid(userId, p.getUid()); } - return UserHandle.getUid(userId, p.getUid()); } if ((flags & MATCH_KNOWN_PACKAGES) != 0) { final PackageSetting ps = mSettings.getPackageLPr(packageName); @@ -7968,13 +7968,11 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mLock) { final AndroidPackage p = mPackages.get(packageName); if (p != null && AndroidPackageUtils.isMatchForSystemOnly(p, flags)) { - PackageSetting ps = getPackageSetting(p.getPackageName()); - if (shouldFilterApplicationLocked(ps, callingUid, userId)) { - return null; + final PackageSetting ps = getPackageSetting(p.getPackageName()); + if (ps != null && ps.getInstalled(userId) + && !shouldFilterApplicationLocked(ps, callingUid, userId)) { + return mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.appId)); } - // TODO: Shouldn't this be checking for package installed state for userId and - // return null? - return mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.appId)); } if ((flags & MATCH_KNOWN_PACKAGES) != 0) { final PackageSetting ps = mSettings.getPackageLPr(packageName); @@ -11589,6 +11587,7 @@ public class PackageManagerService extends IPackageManager.Stub } } builder.append(" to access user "); + builder.append(userId); builder.append("."); return builder.toString(); }