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

Unverified Commit f1d2bafd authored by dhacker29's avatar dhacker29 Committed by Michael Bestas
Browse files

fw/b: Use ro.build.version.incremental to signal OTA upgrades



Co-authored-by: default avatarmaxwen <max.weninger@gmail.com>
Co-authored-by: default avatarSam Mortimer <sam@mortimer.me.uk>
Co-authored-by: default avatarWang Han <416810799@qq.com>
Change-Id: If0eb969ba509981f9209ffa37a949d9042ef4c2a
parent 8bed3b96
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ public final class SystemUpdateInfo implements Parcelable {
        out.startTag(null, tag);
        out.attributeLong(null, ATTR_RECEIVED_TIME, mReceivedTime);
        out.attributeInt(null, ATTR_SECURITY_PATCH_STATE, mSecurityPatchState);
        out.attribute(null, ATTR_ORIGINAL_BUILD , Build.FINGERPRINT);
        out.attribute(null, ATTR_ORIGINAL_BUILD , Build.VERSION.INCREMENTAL);
        out.endTag(null, tag);
    }

@@ -142,7 +142,7 @@ public final class SystemUpdateInfo implements Parcelable {
    public static SystemUpdateInfo readFromXml(TypedXmlPullParser parser) {
        // If an OTA has been applied (build fingerprint has changed), discard stale info.
        final String buildFingerprint = parser.getAttributeValue(null, ATTR_ORIGINAL_BUILD );
        if (!Build.FINGERPRINT.equals(buildFingerprint)) {
        if (!Build.VERSION.INCREMENTAL.equals(buildFingerprint)) {
            return null;
        }
        try {
+1 −1
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ public class PackagePartitions {
            final String partitionName = SYSTEM_PARTITIONS.get(i).getName();
            digestProperties[i] = "ro." + partitionName + ".build.fingerprint";
        }
        digestProperties[SYSTEM_PARTITIONS.size()] = "ro.build.fingerprint"; // build fingerprint
        digestProperties[SYSTEM_PARTITIONS.size()] = "ro.build.version.incremental";
        return SystemProperties.digestOf(digestProperties);
    }

+2 −2
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ public class AppWidgetXmlUtil {
        out.attributeInt(null, ATTR_WIDGET_FEATURES, info.widgetFeatures);
        out.attributeInt(null, ATTR_DESCRIPTION_RES, info.descriptionRes);
        out.attributeBoolean(null, ATTR_PROVIDER_INHERITANCE, info.isExtendedFromAppWidgetProvider);
        out.attribute(null, ATTR_OS_FINGERPRINT, Build.FINGERPRINT);
        out.attribute(null, ATTR_OS_FINGERPRINT, Build.VERSION.INCREMENTAL);
    }

    /**
@@ -128,7 +128,7 @@ public class AppWidgetXmlUtil {
            @NonNull final TypedXmlPullParser parser) {
        Objects.requireNonNull(parser);
        final String fingerprint = parser.getAttributeValue(null, ATTR_OS_FINGERPRINT);
        if (!Build.FINGERPRINT.equals(fingerprint)) {
        if (!Build.VERSION.INCREMENTAL.equals(fingerprint)) {
            return null;
        }
        final AppWidgetProviderInfo info = new AppWidgetProviderInfo();
+3 −2
Original line number Diff line number Diff line
@@ -2239,7 +2239,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            if (mIsUpgrade) {
                PackageManagerServiceUtils.logCriticalInfo(Log.INFO,
                        "Upgrading from " + ver.fingerprint + " (" + ver.buildFingerprint + ") to "
                                + PackagePartitions.FINGERPRINT + " (" + Build.FINGERPRINT + ")");
                                + PackagePartitions.FINGERPRINT
                                + " (" + Build.VERSION.INCREMENTAL + ")");
            }
            mPriorSdkVersion = mIsUpgrade ? ver.sdkVersion : -1;
            mInitAppsHelper = new InitAppsHelper(this, mApexManager, mInstallPackageHelper,
@@ -2397,7 +2398,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                                        | Installer.FLAG_CLEAR_APP_DATA_KEEP_ART_PROFILES);
                    }
                }
                ver.buildFingerprint = Build.FINGERPRINT;
                ver.buildFingerprint = Build.VERSION.INCREMENTAL;
                ver.fingerprint = PackagePartitions.FINGERPRINT;
            }

+1 −2
Original line number Diff line number Diff line
@@ -1400,8 +1400,6 @@ public class PackageManagerServiceUtils {
        // that starts with "eng." to signify that this is an engineering build and not
        // destined for release.
        if (isUserDebugBuild && incrementalVersion.startsWith("eng.")) {
            Slog.w(TAG, "Wiping cache directory because the system partition changed.");

            // Heuristic: If the /system directory has been modified recently due to an "adb sync"
            // or a regular make, then blow away the cache. Note that mtimes are *NOT* reliable
            // in general and should not be used for production changes. In this specific case,
@@ -1409,6 +1407,7 @@ public class PackageManagerServiceUtils {
            File frameworkDir =
                    new File(Environment.getRootDirectory(), "framework");
            if (cacheDir.lastModified() < frameworkDir.lastModified()) {
                Slog.w(TAG, "Wiping cache directory because the system partition changed.");
                FileUtils.deleteContents(cacheBaseDir);
                cacheDir = FileUtils.createDir(cacheBaseDir, cacheName);
            }
Loading