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

Commit b42d6946 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Method to wipe all adoptable disks.

Will be used by various classes doing factory reset.

Bug: 9433509
Change-Id: I0701abe00abc2fb9085ce1ffe6e28fb27c91ab51
parent b36586a7
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.ServiceManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.util.Slog;
import android.util.SparseArray;

import com.android.internal.os.SomeArgs;
@@ -638,6 +639,30 @@ public class StorageManager {
        }
    }

    /** {@hide} */
    public void wipeAdoptableDisks() {
        // We only wipe devices in "adoptable" locations, which are in a
        // long-term stable slot/location on the device, where apps have a
        // reasonable chance of storing sensitive data. (Apps need to go through
        // SAF to write to transient volumes.)
        final List<DiskInfo> disks = getDisks();
        for (DiskInfo disk : disks) {
            final String diskId = disk.getId();
            if (disk.isAdoptable()) {
                Slog.d(TAG, "Found adoptable " + diskId + "; wiping");
                try {
                    // TODO: switch to explicit wipe command when we have it,
                    // for now rely on the fact that vfat format does a wipe
                    mMountService.partitionPublic(diskId);
                } catch (Exception e) {
                    Slog.w(TAG, "Failed to wipe " + diskId + ", but soldiering onward", e);
                }
            } else {
                Slog.d(TAG, "Ignorning non-adoptable disk " + disk.getId());
            }
        }
    }

    /** {@hide} */
    public void setVolumeNickname(String fsUuid, String nickname) {
        try {
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import com.android.internal.util.Preconditions;
import java.util.Objects;

/**
 * Notes for a storage volume which may not be currently present.
 * Metadata for a storage volume which may not be currently present.
 *
 * @hide
 */