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 b904863476.
bug: 21144503
Change-Id: Idb6a33f93b70b4e5e2bca95d2d3af0e2adaeedf3
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user