summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2023-01-23 19:07:10 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-01-23 19:07:10 +0000
commit0b9b6f13cf2ade687d44f0a5fa4db02f6ecce54e (patch)
tree202be179384d76f3ae4f00bf65d790373ec144d6 /services
parente83680e21e432b9dc9b8cf6e7ea570e5598bdda1 (diff)
parent7e62e4aff67de5821d8982e9f412c20d3749cc77 (diff)
Merge "Send system user broadcasts in headless system user mode." into tm-qpr-dev am: 8c72c3c907 am: 7e62e4aff6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20965081 Change-Id: Ibe8b15f7ce07e9c117ee331dd2da5f9b17a61ab2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java14
1 files changed, 8 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index de87a0cf7f98..7d1d0e5340ff 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -8432,15 +8432,13 @@ public class ActivityManagerService extends IActivityManager.Stub
t.traceEnd();
}
+ boolean isBootingSystemUser = currentUserId == UserHandle.USER_SYSTEM;
+
// Some systems - like automotive - will explicitly unlock system user then switch
- // to a secondary user. Hence, we don't want to send duplicate broadcasts for
- // the system user here.
+ // to a secondary user.
// TODO(b/242195409): this workaround shouldn't be necessary once we move
// the headless-user start logic to UserManager-land.
- final boolean isBootingSystemUser = (currentUserId == UserHandle.USER_SYSTEM)
- && !UserManager.isHeadlessSystemUserMode();
-
- if (isBootingSystemUser) {
+ if (isBootingSystemUser && !UserManager.isHeadlessSystemUserMode()) {
t.traceBegin("startHomeOnAllDisplays");
mAtmInternal.startHomeOnAllDisplays(currentUserId, "systemReady");
t.traceEnd();
@@ -8452,6 +8450,10 @@ public class ActivityManagerService extends IActivityManager.Stub
if (isBootingSystemUser) {
+ // Need to send the broadcasts for the system user here because
+ // UserController#startUserInternal will not send them for the system user starting,
+ // It checks if the user state already exists, which is always the case for the
+ // system user.
t.traceBegin("sendUserStartBroadcast");
final int callingUid = Binder.getCallingUid();
final int callingPid = Binder.getCallingPid();