From 4b450410065d77d56a56f0835871f8bc7c2d5994 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 11 Mar 2010 16:20:08 -0800 Subject: [PATCH] Need to keep new package's cert when using original-package. Fixes bug #2504353: Lost all widgets and shortcuts after upgrading form FRE68 to FRE69 Change-Id: I62bab66bbd90bf0956d1716bae1b6073d01e2d8a --- services/java/com/android/server/PackageManagerService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 63afabc249c8a..ed8e22bcb5a35 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -7707,7 +7707,11 @@ class PackageManagerService extends IPackageManager.Stub { resourcePath, vc, pkgFlags); if (DEBUG_UPGRADE) Log.v(TAG, "Package " + name + " is adopting original package " + origPackage.name); + // Note that we will retain the new package's signature so + // that we can keep its data. + PackageSignatures s = p.signatures; p.copyFrom(origPackage); + p.signatures = s; p.sharedUser = origPackage.sharedUser; p.userId = origPackage.userId; p.origPackage = origPackage;