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

Commit fbc21350 authored by Oli Lan's avatar Oli Lan Committed by Automerger Merge Worker
Browse files

Merge "Delete expired CE snapshots of app data when user unlocks." into...

Merge "Delete expired CE snapshots of app data when user unlocks." into rvc-dev am: 70e8f5d5 am: 4479c751 am: e87806e2

Change-Id: I9ab03cd7f3ca42955737874ed4bb4a95681504be
parents 716c0760 e87806e2
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -723,6 +723,30 @@ public class Installer extends SystemService {
        }
    }

    /**
     * Deletes all snapshots of credential encrypted user data, where the snapshot id is not
     * included in {@code retainSnapshotIds}.
     *
     * @param userId id of the user whose user data snapshots to delete.
     * @param retainSnapshotIds ids of the snapshots that should not be deleted.
     *
     * @return {@code true} if the operation was successful, or {@code false} if a remote call
     * shouldn't be continued. See {@link #checkBeforeRemote}.
     *
     * @throws InstallerException if failed to delete user data snapshot.
     */
    public boolean destroyCeSnapshotsNotSpecified(@UserIdInt int userId,
            int[] retainSnapshotIds) throws InstallerException {
        if (!checkBeforeRemote()) return false;

        try {
            mInstalld.destroyCeSnapshotsNotSpecified(null, userId, retainSnapshotIds);
            return true;
        } catch (Exception e) {
            throw InstallerException.from(e);
        }
    }

    /**
     * Migrates obb data from its legacy location {@code /data/media/obb} to
     * {@code /data/media/0/Android/obb}. This call is idempotent and a fast no-op if data has
+5 −0
Original line number Diff line number Diff line
@@ -505,6 +505,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
            rollbackIds[i] = mRollbacks.get(i).info.getRollbackId();
        }
        ApexManager.getInstance().destroyCeSnapshotsNotSpecified(userId, rollbackIds);
        try {
            mInstaller.destroyCeSnapshotsNotSpecified(userId, rollbackIds);
        } catch (Installer.InstallerException ie) {
            Slog.e(TAG, "Failed to delete snapshots for user: " + userId, ie);
        }
    }

    @WorkerThread