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

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

am 1d3c77a2: Merge "Start passing volume UUID to installd."

* commit '1d3c77a2':
  Start passing volume UUID to installd.
parents 8676a88e 1d3c77a2
Loading
Loading
Loading
Loading
+101 −2
Original line number Diff line number Diff line
@@ -20,7 +20,9 @@ import android.annotation.Nullable;
import android.content.Context;
import android.content.pm.PackageStats;
import android.os.Build;
import android.text.TextUtils;
import android.util.Slog;

import dalvik.system.VMRuntime;

import com.android.internal.os.InstallerConnection;
@@ -42,9 +44,24 @@ public final class Installer extends SystemService {
        ping();
    }

    private static String escapeNull(String arg) {
        if (TextUtils.isEmpty(arg)) {
            return "!";
        } else {
            return arg;
        }
    }

    @Deprecated
    public int install(String name, int uid, int gid, String seinfo) {
        return install(null, name, uid, gid, seinfo);
    }

    public int install(String uuid, String name, int uid, int gid, String seinfo) {
        StringBuilder builder = new StringBuilder("install");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(uid);
@@ -128,9 +145,16 @@ public final class Installer extends SystemService {
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int remove(String name, int userId) {
        return remove(null, name, userId);
    }

    public int remove(String uuid, String name, int userId) {
        StringBuilder builder = new StringBuilder("remove");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(userId);
@@ -146,9 +170,16 @@ public final class Installer extends SystemService {
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int fixUid(String name, int uid, int gid) {
        return fixUid(null, name, uid, gid);
    }

    public int fixUid(String uuid, String name, int uid, int gid) {
        StringBuilder builder = new StringBuilder("fixuid");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(uid);
@@ -157,27 +188,48 @@ public final class Installer extends SystemService {
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int deleteCacheFiles(String name, int userId) {
        return deleteCacheFiles(null, name, userId);
    }

    public int deleteCacheFiles(String uuid, String name, int userId) {
        StringBuilder builder = new StringBuilder("rmcache");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(userId);
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int deleteCodeCacheFiles(String name, int userId) {
        return deleteCodeCacheFiles(null, name, userId);
    }

    public int deleteCodeCacheFiles(String uuid, String name, int userId) {
        StringBuilder builder = new StringBuilder("rmcodecache");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(userId);
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int createUserData(String name, int uid, int userId, String seinfo) {
        return createUserData(null, name, uid, userId, seinfo);
    }

    public int createUserData(String uuid, String name, int uid, int userId, String seinfo) {
        StringBuilder builder = new StringBuilder("mkuserdata");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(uid);
@@ -195,16 +247,30 @@ public final class Installer extends SystemService {
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int removeUserDataDirs(int userId) {
        return removeUserDataDirs(null, userId);
    }

    public int removeUserDataDirs(String uuid, int userId) {
        StringBuilder builder = new StringBuilder("rmuser");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(userId);
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int clearUserData(String name, int userId) {
        return clearUserData(null, name, userId);
    }

    public int clearUserData(String uuid, String name, int userId) {
        StringBuilder builder = new StringBuilder("rmuserdata");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(name);
        builder.append(' ');
        builder.append(userId);
@@ -231,15 +297,30 @@ public final class Installer extends SystemService {
        }
    }

    @Deprecated
    public int freeCache(long freeStorageSize) {
        return freeCache(null, freeStorageSize);
    }

    public int freeCache(String uuid, long freeStorageSize) {
        StringBuilder builder = new StringBuilder("freecache");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(String.valueOf(freeStorageSize));
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public int getSizeInfo(String pkgName, int persona, String apkPath, String libDirPath,
            String fwdLockApkPath, String asecPath, String[] instructionSets, PackageStats pStats) {
        return getSizeInfo(null, pkgName, persona, apkPath, libDirPath, fwdLockApkPath, asecPath,
                instructionSets, pStats);
    }

    public int getSizeInfo(String uuid, String pkgName, int persona, String apkPath,
            String libDirPath, String fwdLockApkPath, String asecPath, String[] instructionSets,
            PackageStats pStats) {
        for (String instructionSet : instructionSets) {
            if (!isValidInstructionSet(instructionSet)) {
                Slog.e(TAG, "Invalid instruction set: " + instructionSet);
@@ -249,6 +330,8 @@ public final class Installer extends SystemService {

        StringBuilder builder = new StringBuilder("getsize");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(pkgName);
        builder.append(' ');
        builder.append(persona);
@@ -288,6 +371,11 @@ public final class Installer extends SystemService {
        return mInstaller.execute("movefiles");
    }

    @Deprecated
    public int linkNativeLibraryDirectory(String dataPath, String nativeLibPath32, int userId) {
        return linkNativeLibraryDirectory(null, dataPath, nativeLibPath32, userId);
    }

    /**
     * Links the 32 bit native library directory in an application's data directory to the
     * real location for backward compatibility. Note that no such symlink is created for
@@ -295,7 +383,8 @@ public final class Installer extends SystemService {
     *
     * @return -1 on error
     */
    public int linkNativeLibraryDirectory(String dataPath, String nativeLibPath32, int userId) {
    public int linkNativeLibraryDirectory(String uuid, String dataPath, String nativeLibPath32,
            int userId) {
        if (dataPath == null) {
            Slog.e(TAG, "linkNativeLibraryDirectory dataPath is null");
            return -1;
@@ -305,6 +394,9 @@ public final class Installer extends SystemService {
        }

        StringBuilder builder = new StringBuilder("linklib");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(dataPath);
        builder.append(' ');
        builder.append(nativeLibPath32);
@@ -314,9 +406,16 @@ public final class Installer extends SystemService {
        return mInstaller.execute(builder.toString());
    }

    @Deprecated
    public boolean restoreconData(String pkgName, String seinfo, int uid) {
        return restoreconData(null, pkgName, seinfo, uid);
    }

    public boolean restoreconData(String uuid, String pkgName, String seinfo, int uid) {
        StringBuilder builder = new StringBuilder("restorecondata");
        builder.append(' ');
        builder.append(escapeNull(uuid));
        builder.append(' ');
        builder.append(pkgName);
        builder.append(' ');
        builder.append(seinfo != null ? seinfo : "!");