summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amith Yamasani <yamasani@google.com> 2017-01-26 12:35:14 -0800
committer Amith Yamasani <yamasani@google.com> 2017-01-26 12:36:55 -0800
commita28071306ec86da664603ff08e74ec7acadbd427 (patch)
tree4e9fc30050ecc9d1054171fa93446cb169744e69
parent9e77aefe9ce2c3caa8c0daebf21c86088e10b951 (diff)
Clear up /data/misc_ce/user folder on delete and reboot
Clean up the folder to avoid leaving residue behind when a user is removed. This was causing issues with reusing the userid. Also check on reboot for incomplete cleanup and remove the folders. Change-Id: Icd21d2669249d5f87032ef0fe95bad49537fa477 Fixes: 34736064 Test: Manual
-rw-r--r--core/java/android/os/Environment.java5
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java4
2 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 8d9ceb6ac58c..7cdb3cec5dbb 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -272,6 +272,11 @@ public class Environment {
}
/** {@hide} */
+ public static File getDataMiscCeDirectory() {
+ return buildPath(getDataDirectory(), "misc_ce");
+ }
+
+ /** {@hide} */
public static File getDataMiscCeDirectory(int userId) {
return buildPath(getDataDirectory(), "misc_ce", String.valueOf(userId));
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 23a6a9029dc8..abf352670521 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -21333,9 +21333,11 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
if ((flags & StorageManager.FLAG_STORAGE_DE) != 0) {
FileUtils.deleteContentsAndDir(Environment.getUserSystemDirectory(userId));
FileUtils.deleteContentsAndDir(Environment.getDataSystemDeDirectory(userId));
+ FileUtils.deleteContentsAndDir(Environment.getDataMiscDeDirectory(userId));
}
if ((flags & StorageManager.FLAG_STORAGE_CE) != 0) {
FileUtils.deleteContentsAndDir(Environment.getDataSystemCeDirectory(userId));
+ FileUtils.deleteContentsAndDir(Environment.getDataMiscCeDirectory(userId));
}
}
@@ -21363,6 +21365,8 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
.listFilesOrEmpty(Environment.getDataSystemDeDirectory()));
Collections.addAll(files, FileUtils
.listFilesOrEmpty(Environment.getDataSystemCeDirectory()));
+ Collections.addAll(files, FileUtils
+ .listFilesOrEmpty(Environment.getDataMiscCeDirectory()));
for (File file : files) {
if (!file.isDirectory()) continue;