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
This commit is contained in:
Hai Zhang
2021-03-30 02:55:56 +00:00
parent 8b23eff356
commit df64212c74

View File

@@ -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<String> permissions = ArrayUtils.isEmpty(p.getRequestedPermissions())
? Collections.emptySet()
final Set<String> permissions = ((flags & PackageManager.GET_PERMISSIONS) == 0
|| ArrayUtils.isEmpty(p.getRequestedPermissions())) ? Collections.emptySet()
: mPermissionManager.getGrantedPermissions(ps.name, userId);
PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags,