From c52ae28006605fb2da38b305b60b9bb419aa2f80 Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Wed, 20 May 2015 11:11:55 +0100 Subject: [PATCH] Throw a checked exception on inconsistent installs. Allows us to proceed without crashing the system process. Also, complete an incomplete error message. Follow up comments from change b904863476991d8540d37d5. bug: 21144503 Change-Id: Idb6a33f93b70b4e5e2bca95d2d3af0e2adaeedf3 --- .../java/com/android/server/pm/PackageManagerService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 74e8e4d64f85e..6a47238d859cf 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -6356,12 +6356,14 @@ public class PackageManagerService extends IPackageManager.Stub { // to scan the package again. deriveNonSystemPackageAbi(pkg, scanFile, cpuAbiOverride, false /* extract libs */); if (!TextUtils.equals(oldPrimaryCpuAbi, pkg.applicationInfo.primaryCpuAbi)) { - throw new IllegalStateException("unexpected abi change for " + pkg.packageName + " (" + throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, + "unexpected abi change for " + pkg.packageName + " (" + oldPrimaryCpuAbi + "-> " + pkg.applicationInfo.primaryCpuAbi); } if (!TextUtils.equals(oldSecondaryCpuAbi, pkg.applicationInfo.secondaryCpuAbi)) { - throw new IllegalStateException("unexpected abi change for " + pkg.packageName + " (" + throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, + "unexpected abi change for " + pkg.packageName + " (" + oldSecondaryCpuAbi + "-> " + pkg.applicationInfo.secondaryCpuAbi); } } @@ -11661,7 +11663,7 @@ public class PackageManagerService extends IPackageManager.Stub { true /* extract libs */); } catch (PackageManagerException pme) { Slog.e(TAG, "Error deriving application ABI", pme); - res.setError(INSTALL_FAILED_INTERNAL_ERROR, "Error "); + res.setError(INSTALL_FAILED_INTERNAL_ERROR, "Error deriving application ABI"); return; }