From 99407db8ddb70141a9582b4d9f5d5012067748fe Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Mon, 20 Jun 2016 13:33:50 +0100 Subject: [PATCH] PackageManager: Don't fail app installs if dexopt fails. bug: 29493857 Change-Id: I953de204319b943d9389bb4c787f859e169e8d21 --- .../com/android/server/pm/PackageManagerService.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index ada0a6be98df7..c8307d810066e 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -15132,16 +15132,13 @@ public class PackageManagerService extends IPackageManager.Stub { } Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dexopt"); // Do not run PackageDexOptimizer through the local performDexOpt - // method because `pkg` is not in `mPackages` yet. - int result = mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryFiles, + // method because `pkg` may not be in `mPackages` yet. + // + // Also, don't fail application installs if the dexopt step fails. + mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryFiles, null /* instructionSets */, false /* checkProfiles */, getCompilerFilterForReason(REASON_INSTALL)); Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); - if (result == PackageDexOptimizer.DEX_OPT_FAILED) { - String msg = "Extracting package failed for " + pkgName; - res.setError(INSTALL_FAILED_DEXOPT, msg); - return; - } // Notify BackgroundDexOptService that the package has been changed. // If this is an update of a package which used to fail to compile,