From 0d4ff37341fc970195d9a737a8ab166c550aa2b3 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 30 Mar 2010 19:25:56 -0700 Subject: Fix issue #2558391: Package manager problem when not replacing existing system partition app Make sure to set the replace flag if the app exists but has been renamed. Change-Id: I0849834b59eb2a98c94e763860f649770eeeef43 --- src/com/android/packageinstaller/PackageInstallerActivity.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index 96c1b16..1b967ff 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -208,9 +208,17 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen } private void initiateInstall() { + String pkgName = mPkgInfo.packageName; + // Check if there is already a package on the device with this name + // but it has been renamed to something else. + String[] oldName = mPm.canonicalToCurrentPackageNames(new String[] { pkgName }); + if (oldName != null && oldName.length > 0 && oldName[0] != null) { + pkgName = oldName[0]; + mPkgInfo.setPackageName(pkgName); + } // Check if package is already installed. display confirmation dialog if replacing pkg try { - mAppInfo = mPm.getApplicationInfo(mPkgInfo.packageName, + mAppInfo = mPm.getApplicationInfo(pkgName, PackageManager.GET_UNINSTALLED_PACKAGES); } catch (NameNotFoundException e) { mAppInfo = null; -- cgit v1.1