From 60aae166e99dff0dba379e14c0fc43e89fd1a018 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 2 Sep 2015 12:54:41 -0700 Subject: Apply default link-handling policy at OTA from pre-M Not just at first (wiped) boot. Bug 23744303 Change-Id: I9ab42f7b081e92231d89b3c97935135c3dd901d4 --- .../android/server/pm/PackageManagerService.java | 22 +++++++++++++--------- 1 file 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 c650b6de8c49..136f6a48eeea 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2283,16 +2283,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 @@ -2310,6 +2310,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; -- cgit v1.2.3-59-g8ed1b