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

Commit de8174b3 authored by Gavin Corkery's avatar Gavin Corkery
Browse files

Add build fingerprint checks to APK sessions

In order to prevent a staged install taking place after
receiving an OTA, set the status of a staged session to
failed if PackageManagerService.isDeviceUpgrading is
true.

Bug: 140992644
Test: atest StagedInstallTest#testInstallApkChangingFingerprint
Change-Id: I7834bed49b2c7af80f2f07a937f9e15860c13910
parent 03e5c28d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -259,6 +259,10 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
        // Don't hold mSessions lock when calling restoreSession, since it might trigger an APK
        // atomic install which needs to query sessions, which requires lock on mSessions.
        for (PackageInstallerSession session : stagedSessionsToRestore) {
            if (mPm.isDeviceUpgrading()) {
                session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_ACTIVATION_FAILED,
                        "Build fingerprint has changed");
            }
            mStagingManager.restoreSession(session);
        }
        // Broadcasts are not sent while we restore sessions on boot, since no processes would be