diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 85bafd9d37e2e..8a57f826ad2ea 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -6873,9 +6873,9 @@ public class PackageParser { /** @hide */ public boolean canHaveOatDir() { - // The following app types CANNOT have oat directory - // - non-updated system apps - return !isSystem() || isUpdatedSystemApp(); + // Nobody should be calling this method ever, but we can't rely on this. + // Thus no logic here and a reasonable return value. + return true; } public boolean isMatch(int flags) { diff --git a/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java b/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java index 780b2347287a0..4a1a6a766726c 100644 --- a/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java +++ b/services/core/java/com/android/server/pm/parsing/pkg/AndroidPackageUtils.java @@ -31,6 +31,7 @@ import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedInstrumentation; import android.content.pm.parsing.component.ParsedProvider; import android.content.pm.parsing.component.ParsedService; +import android.os.incremental.IncrementalManager; import android.text.TextUtils; import com.android.internal.content.NativeLibraryHelper; @@ -141,8 +142,15 @@ public class AndroidPackageUtils { public static boolean canHaveOatDir(AndroidPackage pkg, boolean isUpdatedSystemApp) { // The following app types CANNOT have oat directory - // - non-updated system apps - return !pkg.isSystem() || isUpdatedSystemApp; + // - non-updated system apps, + // - incrementally installed apps. + if (pkg.isSystem() && !isUpdatedSystemApp) { + return false; + } + if (IncrementalManager.isIncrementalPath(pkg.getCodePath())) { + return false; + } + return true; } public static boolean hasComponentClassName(AndroidPackage pkg, String className) {