summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2015-09-02 12:54:41 -0700
committerThe Android Automerger <android-build@google.com>2015-09-02 14:05:07 -0700
commit6606acd610145d0b7c7416e520bebd5fe9c3107a (patch)
tree7e6ae82b2347bb8e493e74e00e43fbe3b2df96d0
parent776c0908d57085e1d46cd6a6438f8c03bb106cba (diff)
downloadbase-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.java22
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;