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

* commit '1d3c77a21e9c8fc59200b42503d9f0effd3f1551':
  Start passing volume UUID to installd.
This commit is contained in:
Jeff Sharkey
2015-04-09 21:57:41 +00:00
committed by Android Git Automerger

View File

@@ -20,7 +20,9 @@ import android.annotation.Nullable;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageStats; import android.content.pm.PackageStats;
import android.os.Build; import android.os.Build;
import android.text.TextUtils;
import android.util.Slog; import android.util.Slog;
import dalvik.system.VMRuntime; import dalvik.system.VMRuntime;
import com.android.internal.os.InstallerConnection; import com.android.internal.os.InstallerConnection;
@@ -42,9 +44,24 @@ public final class Installer extends SystemService {
ping(); 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) { 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"); StringBuilder builder = new StringBuilder("install");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(uid); builder.append(uid);
@@ -128,9 +145,16 @@ public final class Installer extends SystemService {
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int remove(String name, int userId) { 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"); StringBuilder builder = new StringBuilder("remove");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(userId); builder.append(userId);
@@ -146,9 +170,16 @@ public final class Installer extends SystemService {
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int fixUid(String name, int uid, int gid) { 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"); StringBuilder builder = new StringBuilder("fixuid");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(uid); builder.append(uid);
@@ -157,27 +188,48 @@ public final class Installer extends SystemService {
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int deleteCacheFiles(String name, int userId) { 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"); StringBuilder builder = new StringBuilder("rmcache");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(userId); builder.append(userId);
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int deleteCodeCacheFiles(String name, int userId) { 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"); StringBuilder builder = new StringBuilder("rmcodecache");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(userId); builder.append(userId);
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int createUserData(String name, int uid, int userId, String seinfo) { 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"); StringBuilder builder = new StringBuilder("mkuserdata");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(uid); builder.append(uid);
@@ -195,16 +247,30 @@ public final class Installer extends SystemService {
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int removeUserDataDirs(int userId) { public int removeUserDataDirs(int userId) {
return removeUserDataDirs(null, userId);
}
public int removeUserDataDirs(String uuid, int userId) {
StringBuilder builder = new StringBuilder("rmuser"); StringBuilder builder = new StringBuilder("rmuser");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(userId); builder.append(userId);
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int clearUserData(String name, int userId) { 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"); StringBuilder builder = new StringBuilder("rmuserdata");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(name); builder.append(name);
builder.append(' '); builder.append(' ');
builder.append(userId); builder.append(userId);
@@ -231,15 +297,30 @@ public final class Installer extends SystemService {
} }
} }
@Deprecated
public int freeCache(long freeStorageSize) { public int freeCache(long freeStorageSize) {
return freeCache(null, freeStorageSize);
}
public int freeCache(String uuid, long freeStorageSize) {
StringBuilder builder = new StringBuilder("freecache"); StringBuilder builder = new StringBuilder("freecache");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(String.valueOf(freeStorageSize)); builder.append(String.valueOf(freeStorageSize));
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public int getSizeInfo(String pkgName, int persona, String apkPath, String libDirPath, public int getSizeInfo(String pkgName, int persona, String apkPath, String libDirPath,
String fwdLockApkPath, String asecPath, String[] instructionSets, PackageStats pStats) { 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) { for (String instructionSet : instructionSets) {
if (!isValidInstructionSet(instructionSet)) { if (!isValidInstructionSet(instructionSet)) {
Slog.e(TAG, "Invalid instruction set: " + instructionSet); Slog.e(TAG, "Invalid instruction set: " + instructionSet);
@@ -249,6 +330,8 @@ public final class Installer extends SystemService {
StringBuilder builder = new StringBuilder("getsize"); StringBuilder builder = new StringBuilder("getsize");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(pkgName); builder.append(pkgName);
builder.append(' '); builder.append(' ');
builder.append(persona); builder.append(persona);
@@ -288,6 +371,11 @@ public final class Installer extends SystemService {
return mInstaller.execute("movefiles"); 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 * 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 * 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 * @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) { if (dataPath == null) {
Slog.e(TAG, "linkNativeLibraryDirectory dataPath is null"); Slog.e(TAG, "linkNativeLibraryDirectory dataPath is null");
return -1; return -1;
@@ -304,7 +393,10 @@ public final class Installer extends SystemService {
return -1; return -1;
} }
StringBuilder builder = new StringBuilder("linklib "); StringBuilder builder = new StringBuilder("linklib");
builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(dataPath); builder.append(dataPath);
builder.append(' '); builder.append(' ');
builder.append(nativeLibPath32); builder.append(nativeLibPath32);
@@ -314,9 +406,16 @@ public final class Installer extends SystemService {
return mInstaller.execute(builder.toString()); return mInstaller.execute(builder.toString());
} }
@Deprecated
public boolean restoreconData(String pkgName, String seinfo, int uid) { 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"); StringBuilder builder = new StringBuilder("restorecondata");
builder.append(' '); builder.append(' ');
builder.append(escapeNull(uuid));
builder.append(' ');
builder.append(pkgName); builder.append(pkgName);
builder.append(' '); builder.append(' ');
builder.append(seinfo != null ? seinfo : "!"); builder.append(seinfo != null ? seinfo : "!");