summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java9
-rw-r--r--services/core/java/com/android/server/pm/UserManagerService.java6
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);
+ }
}
}