summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2015-09-02 12:54:41 -0700
committerChristopher Tate <ctate@google.com>2015-09-02 13:01:52 -0700
commit60aae166e99dff0dba379e14c0fc43e89fd1a018 (patch)
tree7c88f5db3c053824046ba152a902d7c53c51b660 /services
parentee72f99dd14c8e531cd1a114d162a49636e7b809 (diff)
downloadframeworks_base-60aae166e99dff0dba379e14c0fc43e89fd1a018.zip
frameworks_base-60aae166e99dff0dba379e14c0fc43e89fd1a018.tar.gz
frameworks_base-60aae166e99dff0dba379e14c0fc43e89fd1a018.tar.bz2
Apply default link-handling policy at OTA from pre-M
Not just at first (wiped) boot. Bug 23744303 Change-Id: I9ab42f7b081e92231d89b3c97935135c3dd901d4
Diffstat (limited to 'services')
-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 c650b6d..136f6a4 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;