diff options
author | Christopher Tate <ctate@google.com> | 2013-04-04 15:40:04 -0700 |
---|---|---|
committer | Christopher Tate <ctate@google.com> | 2013-04-09 17:11:55 -0700 |
commit | 32a019d438257dae2ab8f5bba7f18063d8c72353 (patch) | |
tree | 9c75bb9baa4332e5a4d1ec44ec43daead2ca8400 | |
parent | 3c09715cedc737cc6e36c201d9f9188c3615e9a5 (diff) | |
download | frameworks_base-32a019d438257dae2ab8f5bba7f18063d8c72353.zip frameworks_base-32a019d438257dae2ab8f5bba7f18063d8c72353.tar.gz frameworks_base-32a019d438257dae2ab8f5bba7f18063d8c72353.tar.bz2 |
Implicitly enable system apps when updates installed
If someone explicitly installs an update to a system-bundled package,
we infer that this means they actually want to use the new code.
Bug 7467302
Change-Id: If2dc6f764bafbb3a5c94cbdd32273c030fd784b9
-rw-r--r-- | services/java/com/android/server/pm/PackageManagerService.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 3d7dd63..2153ac5 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -8223,6 +8223,24 @@ public class PackageManagerService extends IPackageManager.Stub { updatePermissionsLPw(newPackage.packageName, newPackage, UPDATE_PERMISSIONS_REPLACE_PKG | (newPackage.permissions.size() > 0 ? UPDATE_PERMISSIONS_ALL : 0)); + // For system-bundled packages, we assume that installing an upgraded version + // of the package implies that the user actually wants to run that new code, + // so we enable the package. + if (isSystemApp(newPackage)) { + // NB: implicit assumption that system package upgrades apply to all users + if (DEBUG_INSTALL) { + Slog.d(TAG, "Implicitly enabling system package on upgrade: " + pkgName); + } + PackageSetting ps = mSettings.mPackages.get(pkgName); + if (ps != null) { + if (res.origUsers != null) { + for (int userHandle : res.origUsers) { + ps.setEnabled(COMPONENT_ENABLED_STATE_DEFAULT, + userHandle, installerPackageName); + } + } + } + } res.name = pkgName; res.uid = newPackage.applicationInfo.uid; res.pkg = newPackage; |