diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index e1f3528c3cb9..88088faff655 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2319,16 +2319,16 @@ public class PackageManagerService extends IPackageManager.Stub { } updatePermissionsLPw(null, null, updateFlags); ver.sdkVersion = mSdkVersion; - // clear only after permissions have been updated - mExistingSystemPackages.clear(); - mPromoteSystemApps = false; - // If this is the first boot, and it is a normal boot, then - // we need to initialize the default preferred apps. - if (!mRestoredSettings && !onlyCore) { - mSettings.applyDefaultPreferredAppsLPw(this, UserHandle.USER_OWNER); - applyFactoryDefaultBrowserLPw(UserHandle.USER_OWNER); - primeDomainVerificationsLPw(UserHandle.USER_OWNER); + // If this is the first boot or an update from pre-M, and it is a normal + // boot, then we need to initialize the default preferred apps across + // all defined users. + if (!onlyCore && (mPromoteSystemApps || !mRestoredSettings)) { + for (UserInfo user : sUserManager.getUsers(true)) { + mSettings.applyDefaultPreferredAppsLPw(this, user.id); + applyFactoryDefaultBrowserLPw(user.id); + primeDomainVerificationsLPw(user.id); + } } // If this is first boot after an OTA, and a normal boot, then @@ -2346,6 +2346,10 @@ public class PackageManagerService extends IPackageManager.Stub { checkDefaultBrowser(); + // clear only after permissions and other defaults have been updated + mExistingSystemPackages.clear(); + mPromoteSystemApps = false; + // All the changes are done during package scanning. ver.databaseVersion = Settings.CURRENT_DATABASE_VERSION; |