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

(cherry picked from commit c52ae28006605fb2da38b305b60b9bb419aa2f80)

Change-Id: I47b8762449714162fcd5c16eba6fcc146b93120b
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 1925e2e..fa8184d 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -5531,12 +5531,14 @@
                 // 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);
                 }
             }
@@ -10479,7 +10481,7 @@
                         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;
             }