diff options
author | Christopher Tate <ctate@google.com> | 2015-09-02 12:54:41 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2015-09-02 14:05:07 -0700 |
commit | 6606acd610145d0b7c7416e520bebd5fe9c3107a (patch) | |
tree | 7e6ae82b2347bb8e493e74e00e43fbe3b2df96d0 | |
parent | 776c0908d57085e1d46cd6a6438f8c03bb106cba (diff) | |
download | base-6606acd610145d0b7c7416e520bebd5fe9c3107a.tar.gz |
Apply default link-handling policy at OTA from pre-M
Not just at first (wiped) boot.
Bug 23744303
Change-Id: I9ab42f7b081e92231d89b3c97935135c3dd901d4
-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 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; |