Merge "Persistent configuration should only be updated by currentUser" into main
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4c8f416..eccc41d 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -16953,6 +16953,18 @@
int userId = UserHandle.getCallingUserId();
+ if (UserManager.isVisibleBackgroundUsersEnabled() && userId != getCurrentUserId()) {
+ // The check is added mainly for auto devices. On auto devices, it is possible that
+ // multiple users are visible simultaneously using visible background users.
+ // In such cases, it is desired that only the current user (not the visible background
+ // user) can change the locale and other persistent settings of the device.
+ Slog.w(TAG, "Only current user is allowed to update persistent configuration if "
+ + "visible background users are enabled. Current User" + getCurrentUserId()
+ + ". Calling User: " + userId);
+ throw new SecurityException("Only current user is allowed to update persistent "
+ + "configuration.");
+ }
+
mActivityTaskManager.updatePersistentConfiguration(values, userId);
}