diff options
author | Amith Yamasani <yamasani@google.com> | 2012-08-31 12:12:28 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2012-08-31 15:33:21 -0700 |
commit | 61f57379ca2c5b6290c8da7548fa17128f7ab24f (patch) | |
tree | 1aadc5b172ecf5689455e03e5ab635b709d5021f /services/java/com/android/server/pm/UserManagerService.java | |
parent | 00453e7a0182b50cf01e65c97650b526284fe084 (diff) |
Centralize the creation of the user system directory
Environment.getUserSystemDirectory(int userId)
Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.
Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
Diffstat (limited to 'services/java/com/android/server/pm/UserManagerService.java')
-rw-r--r-- | services/java/com/android/server/pm/UserManagerService.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index 492158d53814..a13c16e6d45f 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -594,6 +594,7 @@ public class UserManagerService extends IUserManager.Stub { // Update the user list writeUserListLocked(); updateUserIdsLocked(); + removeDirectoryRecursive(Environment.getUserSystemDirectory(userHandle)); } } @@ -603,6 +604,17 @@ public class UserManagerService extends IUserManager.Stub { mContext.sendBroadcast(addedIntent, android.Manifest.permission.MANAGE_USERS); } + private void removeDirectoryRecursive(File parent) { + if (parent.isDirectory()) { + String[] files = parent.list(); + for (String filename : files) { + File child = new File(parent, filename); + removeDirectoryRecursive(child); + } + } + parent.delete(); + } + @Override public int getUserSerialNumber(int userHandle) { synchronized (mPackagesLock) { |