From df64212c74d09fc22cc1937e47447d6604f16dd3 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Tue, 30 Mar 2021 02:55:56 +0000 Subject: [PATCH] Don't call getGrantedPermissions() when generating package info without GET_PERMISSIONS. To avoid triggering error in logcat about no permission state is available during early boot. The grantedPermission parameter is actually only used in PackageInfoWithoutStateUtils.generateWithoutComponentsUnchecked() when GET_PERMISSIONS is present, so it's safe to omit the call when we don't have the flag. Fixes: 183999679 Test: presubmit Change-Id: I10a07563cb2378d519a6e0ea220fb1b5d76ea129 --- .../java/com/android/server/pm/PackageManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 550e9f84909c4..dcb990600bb8a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -3173,8 +3173,8 @@ public class PackageManagerService extends IPackageManager.Stub final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY : mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.appId)); // Compute granted permissions only if package has requested permissions - final Set permissions = ArrayUtils.isEmpty(p.getRequestedPermissions()) - ? Collections.emptySet() + final Set permissions = ((flags & PackageManager.GET_PERMISSIONS) == 0 + || ArrayUtils.isEmpty(p.getRequestedPermissions())) ? Collections.emptySet() : mPermissionManager.getGrantedPermissions(ps.name, userId); PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags,