Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4f328c5 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

HACK: allow pre-release SDKs from any prerelease platform.

SDK-1 pre-release APKs might not be updated in time we switch to SDK+1.
This causes test failures.

Technically it's only necessary starting from udc-dev-plus-aosp.
Keeping both HACK CLs in udc-dev for less churn.

Bug: 275409981
Test: run locally finalization REL step
Change-Id: I78f7ae0f519088110d14787450f015d1e8ed2f46
Merged-In: I78f7ae0f519088110d14787450f015d1e8ed2f46
parent 9ddb616c
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.ClassLoaderFactory;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.XmlUtils;
import com.android.modules.utils.build.UnboundedSdkLevel;

import libcore.io.IoUtils;
import libcore.util.EmptyArray;
@@ -2628,6 +2629,16 @@ public class PackageParser {
            return Build.VERSION_CODES.CUR_DEVELOPMENT;
        }

        // STOPSHIP: hack for the pre-release SDK
        if (platformSdkCodenames.length == 0) {
            Slog.w(TAG, "Package requires development platform " + targetCode
                    + ", returning current version " + Build.VERSION.SDK_INT);
            return Build.VERSION.SDK_INT;
        }
        if (UnboundedSdkLevel.isAtMost(targetCode)) {
            return Build.VERSION_CODES.CUR_DEVELOPMENT;
        }

        // Otherwise, we're looking at an incompatible pre-release SDK.
        if (platformSdkCodenames.length > 0) {
            outError[0] = "Requires development platform " + targetCode
@@ -2699,6 +2710,16 @@ public class PackageParser {
            return Build.VERSION_CODES.CUR_DEVELOPMENT;
        }

        // STOPSHIP: hack for the pre-release SDK
        if (platformSdkCodenames.length == 0) {
            Slog.w(TAG, "Package requires min development platform " + minCode
                    + ", returning current version " + Build.VERSION.SDK_INT);
            return Build.VERSION.SDK_INT;
        }
        if (UnboundedSdkLevel.isAtMost(minCode)) {
            return Build.VERSION_CODES.CUR_DEVELOPMENT;
        }

        // Otherwise, we're looking at an incompatible pre-release SDK.
        if (platformSdkCodenames.length > 0) {
            outError[0] = "Requires development platform " + minCode
+20 −0
Original line number Diff line number Diff line
@@ -316,6 +316,16 @@ public class FrameworkParsingPackageUtils {
            return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
        }

        // STOPSHIP: hack for the pre-release SDK
        if (platformSdkCodenames.length == 0) {
            Slog.w(TAG, "Parsed package requires min development platform " + minCode
                    + ", returning current version " + Build.VERSION.SDK_INT);
            return input.success(Build.VERSION.SDK_INT);
        }
        if (UnboundedSdkLevel.isAtMost(minCode)) {
            return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
        }

        // Otherwise, we're looking at an incompatible pre-release SDK.
        if (platformSdkCodenames.length > 0) {
            return input.error(PackageManager.INSTALL_FAILED_OLDER_SDK,
@@ -383,6 +393,16 @@ public class FrameworkParsingPackageUtils {
            return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
        }

        // STOPSHIP: hack for the pre-release SDK
        if (platformSdkCodenames.length == 0) {
            Slog.w(TAG, "Parsed package requires development platform " + targetCode
                    + ", returning current version " + Build.VERSION.SDK_INT);
            return input.success(Build.VERSION.SDK_INT);
        }
        if (UnboundedSdkLevel.isAtMost(targetCode)) {
            return input.success(Build.VERSION_CODES.CUR_DEVELOPMENT);
        }

        // Otherwise, we're looking at an incompatible pre-release SDK.
        if (platformSdkCodenames.length > 0) {
            return input.error(PackageManager.INSTALL_FAILED_OLDER_SDK,
+3 −2
Original line number Diff line number Diff line
@@ -93,8 +93,9 @@ public class PackageParserLegacyCoreTest {
    private static final int PLATFORM_VERSION = 20;
    private static final int NEWER_VERSION = 30;

    private static final int DISALLOW_PRERELEASE = -1;
    private static final int DISALLOW_RELEASED = -1;
    // STOPSHIP: hack for the pre-release SDK
    private static final int DISALLOW_PRERELEASE = Build.VERSION_CODES.CUR_DEVELOPMENT;
    private static final int DISALLOW_RELEASED = Build.VERSION.SDK_INT;

    @Rule public final Expect expect = Expect.create();