diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 9 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/UserManagerService.java | 6 |
2 files changed, 11 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b6c269ecf627..e3b045057436 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20049,8 +20049,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } - void newUserCreated(final int userHandle) { - mDefaultPermissionPolicy.grantDefaultPermissions(userHandle); + void onBeforeUserStartUninitialized(final int userId) { + synchronized (mPackages) { + if (mSettings.areDefaultRuntimePermissionsGrantedLPr(userId)) { + return; + } + } + mDefaultPermissionPolicy.grantDefaultPermissions(userId); // If permission review for legacy apps is required, we represent // dagerous permissions for such apps as always granted runtime // permissions to keep per user flag state whether review is needed. diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index e72d233f4f80..2d8dcf0c98dd 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1,4 +1,3 @@ - /* * Copyright (C) 2011 The Android Open Source Project * @@ -2074,7 +2073,6 @@ public class UserManagerService extends IUserManager.Stub { synchronized (mRestrictionsLock) { mBaseUserRestrictions.append(userId, restrictions); } - mPm.newUserCreated(userId); Intent addedIntent = new Intent(Intent.ACTION_USER_ADDED); addedIntent.putExtra(Intent.EXTRA_USER_HANDLE, userId); mContext.sendBroadcastAsUser(addedIntent, UserHandle.ALL, @@ -2634,6 +2632,10 @@ public class UserManagerService extends IUserManager.Stub { synchronized (mRestrictionsLock) { applyUserRestrictionsLR(userId); } + UserInfo userInfo = getUserInfoNoChecks(userId); + if (userInfo != null && !userInfo.isInitialized()) { + mPm.onBeforeUserStartUninitialized(userId); + } } } |