From eafee02fdc463e765ce34b8541f4ba55989b4bee Mon Sep 17 00:00:00 2001 From: Fyodor Kupolov Date: Wed, 15 Mar 2017 17:09:04 -0700 Subject: [PATCH] Clear mGuestRestrictions before loading from disk Only guest user restrictions that are set to true are saved in writeUserListLP. When loading , they are applied on top of mGuestRestrictions filled with default values. Restrictions set to false are reset and this was causing the issue. Bug: 33250860 Test: Manual Change-Id: I6e5c792a3adcf2116bb26fd5feba551d7edcb28e --- .../core/java/com/android/server/pm/UserManagerService.java | 4 ++-- .../java/com/android/server/pm/UserRestrictionsUtils.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index b9fcf4e39203d..1f97d7d9cf477 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1810,8 +1810,8 @@ public class UserManagerService extends IUserManager.Stub { if (type == XmlPullParser.START_TAG) { if (parser.getName().equals(TAG_RESTRICTIONS)) { synchronized (mGuestRestrictions) { - mGuestRestrictions.putAll( - UserRestrictionsUtils.readRestrictions(parser)); + UserRestrictionsUtils + .readRestrictions(parser, mGuestRestrictions); } } break; diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java index 36eba8e1b6bb5..cb2ed6e0d00f0 100644 --- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java +++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java @@ -207,6 +207,7 @@ public class UserRestrictionsUtils { } public static void readRestrictions(XmlPullParser parser, Bundle restrictions) { + restrictions.clear(); for (String key : USER_RESTRICTIONS) { final String value = parser.getAttributeValue(null, key); if (value != null) {