diff options
author | Svet Ganov <svetoslavganov@google.com> | 2015-06-30 21:44:32 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-30 21:44:34 +0000 |
commit | 1aaad610dfc7445ec29fd906974677515c3a9f87 (patch) | |
tree | 1f0946fb5ae52821b881a10afc5b196721b9e4f4 | |
parent | e08f3b3ff5ec89bc8c94b5d3d6518afde8e3b8a4 (diff) | |
parent | 06324ed4c6017d5343b9e0bba13472e32a2815f5 (diff) | |
download | frameworks_base-1aaad610dfc7445ec29fd906974677515c3a9f87.zip frameworks_base-1aaad610dfc7445ec29fd906974677515c3a9f87.tar.gz frameworks_base-1aaad610dfc7445ec29fd906974677515c3a9f87.tar.bz2 |
Merge "Do not hold a lock when calling API to grant default permissions" into mnc-dev
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index c86e2f1..1385440 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -3411,11 +3411,16 @@ public class PackageManagerService extends IPackageManager.Stub { "resetRuntimePermissions"); } + final int[] userIds; + synchronized (mPackages) { updatePermissionsLPw(null, null, UPDATE_PERMISSIONS_ALL); - for (int userId : UserManagerService.getInstance().getUserIds()) { - mDefaultPermissionPolicy.grantDefaultPermissions(userId); - } + final int userCount = UserManagerService.getInstance().getUserIds().length; + userIds = Arrays.copyOf(UserManagerService.getInstance().getUserIds(), userCount); + } + + for (int userId : userIds) { + mDefaultPermissionPolicy.grantDefaultPermissions(userId); } } |