Allow PO to set DO restrictions if it's on user 0
Bug 26091525
Change-Id: Ie6d2cd4ade076d8d2ec47243ff1280b95b7c9044
diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
index 816903e..9bbc3c1 100644
--- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
+++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
@@ -209,11 +209,13 @@
}
/**
- * @return true if a restriction is settable by profile owner.
+ * @return true if a restriction is settable by profile owner. Note it takes a user ID because
+ * some restrictions can be changed by PO only when it's running on the system user.
*/
- public static boolean canProfileOwnerChange(String restriction) {
- return !(IMMUTABLE_BY_OWNERS.contains(restriction)
- || DEVICE_OWNER_ONLY_RESTRICTIONS.contains(restriction));
+ public static boolean canProfileOwnerChange(String restriction, int userId) {
+ return !IMMUTABLE_BY_OWNERS.contains(restriction)
+ && !(userId != UserHandle.USER_SYSTEM
+ && DEVICE_OWNER_ONLY_RESTRICTIONS.contains(restriction));
}
/**