Merge "Don't hold lock when calling externally" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1415d26786
@@ -2050,17 +2050,18 @@ public class PackageManagerService extends IPackageManager.Stub {
|
|||||||
final int immutableFlags = PackageManager.FLAG_PERMISSION_SYSTEM_FIXED
|
final int immutableFlags = PackageManager.FLAG_PERMISSION_SYSTEM_FIXED
|
||||||
| PackageManager.FLAG_PERMISSION_POLICY_FIXED;
|
| PackageManager.FLAG_PERMISSION_POLICY_FIXED;
|
||||||
|
|
||||||
synchronized (mPackages) {
|
for (String permission : pkg.requestedPermissions) {
|
||||||
for (String permission : pkg.requestedPermissions) {
|
final BasePermission bp;
|
||||||
BasePermission bp = mSettings.mPermissions.get(permission);
|
synchronized (mPackages) {
|
||||||
if (bp != null && (bp.isRuntime() || bp.isDevelopment())
|
bp = mSettings.mPermissions.get(permission);
|
||||||
&& (grantedPermissions == null
|
}
|
||||||
|| ArrayUtils.contains(grantedPermissions, permission))) {
|
if (bp != null && (bp.isRuntime() || bp.isDevelopment())
|
||||||
final int flags = permissionsState.getPermissionFlags(permission, userId);
|
&& (grantedPermissions == null
|
||||||
// Installer cannot change immutable permissions.
|
|| ArrayUtils.contains(grantedPermissions, permission))) {
|
||||||
if ((flags & immutableFlags) == 0) {
|
final int flags = permissionsState.getPermissionFlags(permission, userId);
|
||||||
grantRuntimePermission(pkg.packageName, permission, userId);
|
// Installer cannot change immutable permissions.
|
||||||
}
|
if ((flags & immutableFlags) == 0) {
|
||||||
|
grantRuntimePermission(pkg.packageName, permission, userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user