diff options
author | Amith Yamasani <yamasani@google.com> | 2013-07-09 11:24:44 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2013-07-09 11:24:44 -0700 |
commit | b82add27d084f7fc3e00ea7fd26d245dfe801d11 (patch) | |
tree | 8fc867d7a7865b6028fd120942611fa19f93b5ba /services/java/com/android/server/pm/UserManagerService.java | |
parent | e969964c80a20b2d968b4ee54495176c9049d3e3 (diff) |
Clean up any restrictions files that shouldn't be there.
Partially fixes the mess that was caused by #9681399
Change-Id: Iaabe15c87d1b002f0b2210b34adcc31b8fb4329c
Diffstat (limited to 'services/java/com/android/server/pm/UserManagerService.java')
-rw-r--r-- | services/java/com/android/server/pm/UserManagerService.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index d86f2c75c08e..29012127b04e 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -822,6 +822,11 @@ public class UserManagerService extends IUserManager.Stub { pinState.failedAttempts = failedAttempts; pinState.lastAttemptTime = lastAttemptTime; } + // If this is not a restricted profile and there is no restrictions pin, clean up + // any restrictions files that might have been left behind. + if (!userInfo.isRestricted() && salt == 0) { + cleanAppRestrictions(id); + } return userInfo; } catch (IOException ioe) { @@ -873,6 +878,26 @@ public class UserManagerService extends IUserManager.Stub { } } + /** + * Removes all the restrictions files (res_<packagename>) for a given user. + * Does not do any permissions checking. + */ + private void cleanAppRestrictions(int userId) { + synchronized (mPackagesLock) { + File dir = Environment.getUserSystemDirectory(userId); + String[] files = dir.list(); + if (files == null) return; + for (String fileName : files) { + if (fileName.startsWith(RESTRICTIONS_FILE_PREFIX)) { + File resFile = new File(dir, fileName); + if (resFile.exists()) { + resFile.delete(); + } + } + } + } + } + @Override public UserInfo createUser(String name, int flags) { checkManageUsersPermission("Only the system can create users"); |