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

Commit bc62b218 authored by longhai's avatar longhai
Browse files

Fixed the issue when some apps were gone and couldn't be installed


successfully after updating from KK to M via OTA.

There is more than one signature for some apps like Cortana. This app
which is installed in KK would be gone when updating from KK to M via OTA.
The reason for this is the unmatching signature, the error code is:
INSTALL_FAILED_UPDATE_INCOMPATIBLE.

Solution:
'databaseVersion' should not be assigned to CURRENT_DATABASE_VERSION
when creating a 'VersionInfo' instance, because it would affect the
process of ‘compareSignaturesCompat’ signature verification. We could
set the right value of 'databaseVersion' at an appropriate timing.

Signed-off-by: default avatarlonghai <longhai@xiaomi.com>
parent 26fdbc18
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1233,7 +1233,6 @@ final class Settings {
        VersionInfo ver = mVersion.get(volumeUuid);
        if (ver == null) {
            ver = new VersionInfo();
            ver.forceCurrent();
            mVersion.put(volumeUuid, ver);
        }
        return ver;
@@ -2529,8 +2528,8 @@ final class Settings {
                            "No settings file; creating initial state");
                    // It's enough to just touch version details to create them
                    // with default values
                    findOrCreateVersion(StorageManager.UUID_PRIVATE_INTERNAL);
                    findOrCreateVersion(StorageManager.UUID_PRIMARY_PHYSICAL);
                    findOrCreateVersion(StorageManager.UUID_PRIVATE_INTERNAL).forceCurrent();
                    findOrCreateVersion(StorageManager.UUID_PRIMARY_PHYSICAL).forceCurrent();
                    return false;
                }
                str = new FileInputStream(mSettingsFilename);