From a28071306ec86da664603ff08e74ec7acadbd427 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Thu, 26 Jan 2017 12:35:14 -0800 Subject: [PATCH] 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 --- core/java/android/os/Environment.java | 5 +++++ .../java/com/android/server/pm/PackageManagerService.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 8d9ceb6ac58ce..7cdb3cec5dbba 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -271,6 +271,11 @@ public class Environment { return new File(getDataDirectory(), "misc"); } + /** {@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 23a6a9029dc8a..abf352670521f 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;