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

Commit aebcf3b7 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android Git Automerger
Browse files

am 23fdb635: am e87dc6db: am f6e9a3ed: Merge "More info to support CTS, fix...

am 23fdb635: am e87dc6db: am f6e9a3ed: Merge "More info to support CTS, fix reconcile bug." into mnc-dev

* commit '23fdb635':
  More info to support CTS, fix reconcile bug.
parents dea13a96 23fdb635
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -81,6 +81,8 @@ public final class Sm {
            runUnmount();
        } else if ("format".equals(op)) {
            runFormat();
        } else if ("benchmark".equals(op)) {
            runBenchmark();
        } else if ("forget".equals(op)) {
            runForget();
        } else {
@@ -89,11 +91,14 @@ public final class Sm {
    }

    public void runListDisks() throws RemoteException {
        final boolean onlyAdoptable = "adoptable".equals(nextArg());
        final DiskInfo[] disks = mSm.getDisks();
        for (DiskInfo disk : disks) {
            if (!onlyAdoptable || disk.isAdoptable()) {
                System.out.println(disk.getId());
            }
        }
    }

    public void runListVolumes() throws RemoteException {
        final String filter = nextArg();
@@ -161,6 +166,11 @@ public final class Sm {
        mSm.format(volId);
    }

    public void runBenchmark() throws RemoteException {
        final String volId = nextArg();
        mSm.benchmark(volId);
    }

    public void runForget() throws RemoteException{
        final String fsUuid = nextArg();
        if ("all".equals(fsUuid)) {
@@ -180,7 +190,7 @@ public final class Sm {
    }

    private static int showUsage() {
        System.err.println("usage: sm list-disks");
        System.err.println("usage: sm list-disks [adoptable]");
        System.err.println("       sm list-volumes [public|private|emulated|all]");
        System.err.println("       sm has-adoptable");
        System.err.println("       sm get-primary-storage-uuid");
@@ -190,6 +200,7 @@ public final class Sm {
        System.err.println("       sm mount VOLUME");
        System.err.println("       sm unmount VOLUME");
        System.err.println("       sm format VOLUME");
        System.err.println("       sm benchmark VOLUME");
        System.err.println("");
        System.err.println("       sm forget [UUID|all]");
        System.err.println("");
+12 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.os;

import android.annotation.NonNull;
import android.provider.DocumentsContract.Document;
import android.system.ErrnoException;
import android.system.Os;
@@ -69,6 +70,8 @@ public class FileUtils {
    /** Regular expression for safe filenames: no spaces or metacharacters */
    private static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[\\w%+,./=_-]+");

    private static final File[] EMPTY = new File[0];

    /**
     * Set owner and mode of of given {@link File}.
     *
@@ -634,4 +637,13 @@ public class FileUtils {
            return new File(parent, name + "." + ext);
        }
    }

    public static @NonNull File[] listFilesOrEmpty(File dir) {
        File[] res = dir.listFiles();
        if (res != null) {
            return res;
        } else {
            return EMPTY;
        }
    }
}
+10 −13
Original line number Diff line number Diff line
@@ -15605,12 +15605,8 @@ public class PackageManagerService extends IPackageManager.Stub {
     * recycled.
     */
    private void reconcileUsers(String volumeUuid) {
        final File[] files = Environment.getDataUserDirectory(volumeUuid).listFiles();
        if (ArrayUtils.isEmpty(files)) {
            Slog.d(TAG, "No users found on " + volumeUuid);
            return;
        }
        final File[] files = FileUtils
                .listFilesOrEmpty(Environment.getDataUserDirectory(volumeUuid));
        for (File file : files) {
            if (!file.isDirectory()) continue;
@@ -15666,12 +15662,8 @@ public class PackageManagerService extends IPackageManager.Stub {
     * another volume.
     */
    private void reconcileApps(String volumeUuid) {
        final File[] files = Environment.getDataAppDirectory(volumeUuid).listFiles();
        if (ArrayUtils.isEmpty(files)) {
            Slog.d(TAG, "No apps found on " + volumeUuid);
            return;
        }
        final File[] files = FileUtils
                .listFilesOrEmpty(Environment.getDataAppDirectory(volumeUuid));
        for (File file : files) {
            final boolean isPackage = (isApkFile(file) || file.isDirectory())
                    && !PackageInstallerService.isStageName(file.getName());
@@ -15802,7 +15794,12 @@ public class PackageManagerService extends IPackageManager.Stub {
        }
        // Now that we're guarded by frozen state, kill app during move
        final long token = Binder.clearCallingIdentity();
        try {
            killApplication(packageName, appId, "move pkg");
        } finally {
            Binder.restoreCallingIdentity(token);
        }
        final Bundle extras = new Bundle();
        extras.putString(Intent.EXTRA_PACKAGE_NAME, packageName);