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

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

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

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


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


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


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

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


    private static int showUsage() {
    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 list-volumes [public|private|emulated|all]");
        System.err.println("       sm has-adoptable");
        System.err.println("       sm has-adoptable");
        System.err.println("       sm get-primary-storage-uuid");
        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 mount VOLUME");
        System.err.println("       sm unmount VOLUME");
        System.err.println("       sm unmount VOLUME");
        System.err.println("       sm format VOLUME");
        System.err.println("       sm format VOLUME");
        System.err.println("       sm benchmark VOLUME");
        System.err.println("");
        System.err.println("");
        System.err.println("       sm forget [UUID|all]");
        System.err.println("       sm forget [UUID|all]");
        System.err.println("");
        System.err.println("");
+12 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package android.os;
package android.os;


import android.annotation.NonNull;
import android.provider.DocumentsContract.Document;
import android.provider.DocumentsContract.Document;
import android.system.ErrnoException;
import android.system.ErrnoException;
import android.system.Os;
import android.system.Os;
@@ -69,6 +70,8 @@ public class FileUtils {
    /** Regular expression for safe filenames: no spaces or metacharacters */
    /** Regular expression for safe filenames: no spaces or metacharacters */
    private static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[\\w%+,./=_-]+");
    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}.
     * Set owner and mode of of given {@link File}.
     *
     *
@@ -634,4 +637,13 @@ public class FileUtils {
            return new File(parent, name + "." + ext);
            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 Original line Diff line number Diff line
@@ -15605,12 +15605,8 @@ public class PackageManagerService extends IPackageManager.Stub {
     * recycled.
     * recycled.
     */
     */
    private void reconcileUsers(String volumeUuid) {
    private void reconcileUsers(String volumeUuid) {
        final File[] files = Environment.getDataUserDirectory(volumeUuid).listFiles();
        final File[] files = FileUtils
        if (ArrayUtils.isEmpty(files)) {
                .listFilesOrEmpty(Environment.getDataUserDirectory(volumeUuid));
            Slog.d(TAG, "No users found on " + volumeUuid);
            return;
        }
        for (File file : files) {
        for (File file : files) {
            if (!file.isDirectory()) continue;
            if (!file.isDirectory()) continue;
@@ -15666,12 +15662,8 @@ public class PackageManagerService extends IPackageManager.Stub {
     * another volume.
     * another volume.
     */
     */
    private void reconcileApps(String volumeUuid) {
    private void reconcileApps(String volumeUuid) {
        final File[] files = Environment.getDataAppDirectory(volumeUuid).listFiles();
        final File[] files = FileUtils
        if (ArrayUtils.isEmpty(files)) {
                .listFilesOrEmpty(Environment.getDataAppDirectory(volumeUuid));
            Slog.d(TAG, "No apps found on " + volumeUuid);
            return;
        }
        for (File file : files) {
        for (File file : files) {
            final boolean isPackage = (isApkFile(file) || file.isDirectory())
            final boolean isPackage = (isApkFile(file) || file.isDirectory())
                    && !PackageInstallerService.isStageName(file.getName());
                    && !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
        // Now that we're guarded by frozen state, kill app during move
        final long token = Binder.clearCallingIdentity();
        try {
            killApplication(packageName, appId, "move pkg");
            killApplication(packageName, appId, "move pkg");
        } finally {
            Binder.restoreCallingIdentity(token);
        }
        final Bundle extras = new Bundle();
        final Bundle extras = new Bundle();
        extras.putString(Intent.EXTRA_PACKAGE_NAME, packageName);
        extras.putString(Intent.EXTRA_PACKAGE_NAME, packageName);