Merge "Don\'t hold lock when calling externally" into nyc-dev

am: 1415d26

* commit '1415d267864cb7f6017abfb9359d8ea9302bcb64':
  Don't hold lock when calling externally

Change-Id: I0029ff7107324b41680e0ed8a03a925f38dc5388
This commit is contained in:
Todd Kennedy
2016-04-27 01:57:05 +00:00
committed by android-build-merger

View File

@@ -2050,17 +2050,18 @@ public class PackageManagerService extends IPackageManager.Stub {
final int immutableFlags = PackageManager.FLAG_PERMISSION_SYSTEM_FIXED
| PackageManager.FLAG_PERMISSION_POLICY_FIXED;
synchronized (mPackages) {
for (String permission : pkg.requestedPermissions) {
BasePermission bp = mSettings.mPermissions.get(permission);
if (bp != null && (bp.isRuntime() || bp.isDevelopment())
&& (grantedPermissions == null
|| ArrayUtils.contains(grantedPermissions, permission))) {
final int flags = permissionsState.getPermissionFlags(permission, userId);
// Installer cannot change immutable permissions.
if ((flags & immutableFlags) == 0) {
grantRuntimePermission(pkg.packageName, permission, userId);
}
for (String permission : pkg.requestedPermissions) {
final BasePermission bp;
synchronized (mPackages) {
bp = mSettings.mPermissions.get(permission);
}
if (bp != null && (bp.isRuntime() || bp.isDevelopment())
&& (grantedPermissions == null
|| ArrayUtils.contains(grantedPermissions, permission))) {
final int flags = permissionsState.getPermissionFlags(permission, userId);
// Installer cannot change immutable permissions.
if ((flags & immutableFlags) == 0) {
grantRuntimePermission(pkg.packageName, permission, userId);
}
}
}