diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index d8900c0546fd6..d364d17fa764d 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -290,8 +290,8 @@ public class BackgroundDexOptService extends JobService { PackageManagerService.REASON_BACKGROUND_DEXOPT, /* force */ false) : pm.performDexOptSecondary(pkg, - PackageManagerServiceCompilerMapping.getFullCompilerFilter(), - /* force */ true); + PackageManagerService.REASON_BACKGROUND_DEXOPT, + /* force */ false); if (success) { // Dexopt succeeded, remove package from the list of failing ones. synchronized (failedPackageNames) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index fb3080b4376fa..41b7f48260a5f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -8456,6 +8456,11 @@ public class PackageManagerService extends IPackageManager.Stub { return mDexManager.dexoptSecondaryDex(packageName, compilerFilter, force); } + public boolean performDexOptSecondary(String packageName, int compileReason, + boolean force) { + return mDexManager.dexoptSecondaryDex(packageName, compileReason, force); + } + /** * Reconcile the information we have about the secondary dex files belonging to * {@code packagName} and the actual dex files. For all dex files that were diff --git a/services/core/java/com/android/server/pm/dex/DexManager.java b/services/core/java/com/android/server/pm/dex/DexManager.java index 83dd392988bfc..a904d178b03d6 100644 --- a/services/core/java/com/android/server/pm/dex/DexManager.java +++ b/services/core/java/com/android/server/pm/dex/DexManager.java @@ -274,6 +274,17 @@ public class DexManager { return mPackageDexUsage.getPackageUseInfo(packageName); } + /** + * Perform dexopt on the package {@code packageName} secondary dex files. + * @return true if all secondary dex files were processed successfully (compiled or skipped + * because they don't need to be compiled).. + */ + public boolean dexoptSecondaryDex(String packageName, int compilerReason, boolean force) { + return dexoptSecondaryDex(packageName, + PackageManagerServiceCompilerMapping.getCompilerFilterForReason(compilerReason), + force); + } + /** * Perform dexopt on the package {@code packageName} secondary dex files. * @return true if all secondary dex files were processed successfully (compiled or skipped