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

Commit 4780c5f8 authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Move starting filesystem checkpoint out of StagingManager.

And into apexd. Since we don't need filesystem checkpointing for APKs
that are part of a staged install, it makes more sense to do all of
the checkpointing logic in apexd instead.

Bug: 126740531
Test: atest apexservice_test
      atest apex_e2e_tests

Change-Id: If832bcfacd976ec173af1b0ffa73f4fdc6632cc4
parent f5096afd
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -44,13 +44,11 @@ import android.os.ParcelFileDescriptor;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.storage.IStorageManager;
import android.util.Slog;
import android.util.SparseArray;
import android.util.apk.ApkSignatureVerifier;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.content.PackageHelper;
import com.android.internal.os.BackgroundThread;

import java.io.File;
@@ -255,21 +253,6 @@ public class StagingManager {
            }
        }

        // Make sure we start a filesystem checkpoint on the next boot.
        try {
            IStorageManager storageManager = PackageHelper.getStorageManager();
            if (storageManager.supportsCheckpoint()) {
                storageManager.startCheckpoint(1 /* numRetries */);
            }
        } catch (Exception e) { // TODO(b/130190815) make a RemoteException again
            // While StorageManager lives in the same process, the native implementation
            // it calls through lives in 'vold'; so, this call can fail if 'vold' isn't
            // reachable.
            // Since we can live without filesystem checkpointing, just warn in this case
            // and continue.
            Slog.w(TAG, "Could not start filesystem checkpoint:", e);
        }

        session.setStagedSessionReady();
        if (sessionContainsApex(session)
                && !mApexManager.markStagedSessionReady(session.sessionId)) {