summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/pm/Installer.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/pm/Installer.java')
-rw-r--r--services/java/com/android/server/pm/Installer.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/Installer.java b/services/java/com/android/server/pm/Installer.java
index 11ccd60..9b1973e 100644
--- a/services/java/com/android/server/pm/Installer.java
+++ b/services/java/com/android/server/pm/Installer.java
@@ -277,6 +277,27 @@ class Installer {
return execute(builder.toString());
}
+ /**
+ * Clone all the package data directories from srcUserId to targetUserId. If copyData is true,
+ * some of the data is also copied, otherwise just empty directories are created with the
+ * correct access rights.
+ * @param srcUserId user to copy the data directories from
+ * @param targetUserId user to copy the data directories to
+ * @param copyData whether the data itself is to be copied. If false, empty directories are
+ * created.
+ * @return success/error code
+ */
+ public int cloneUserData(int srcUserId, int targetUserId, boolean copyData) {
+ StringBuilder builder = new StringBuilder("cloneuserdata");
+ builder.append(' ');
+ builder.append(srcUserId);
+ builder.append(' ');
+ builder.append(targetUserId);
+ builder.append(' ');
+ builder.append(copyData ? '1' : '0');
+ return execute(builder.toString());
+ }
+
public boolean ping() {
if (execute("ping") < 0) {
return false;