Merge "Do not hold a lock when calling API to grant default permissions" into mnc-dev
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 @@
                     "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);
         }
     }