diff options
| author | 2017-01-26 12:35:14 -0800 | |
|---|---|---|
| committer | 2017-01-26 12:36:55 -0800 | |
| commit | a28071306ec86da664603ff08e74ec7acadbd427 (patch) | |
| tree | 4e9fc30050ecc9d1054171fa93446cb169744e69 | |
| parent | 9e77aefe9ce2c3caa8c0daebf21c86088e10b951 (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.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 4 |
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; |