From f87160eec0f693d7f8fb6c16c6e600919efb03c8 Mon Sep 17 00:00:00 2001 From: Yasin Kilicdere Date: Fri, 13 May 2022 00:31:05 +0100 Subject: [PATCH] Puts mPm.onNewUserCreated inside Binder.withCleanCallingIdentity PackageManagerService.onNewUserCreated eventually calls ComputerEngine.getInstalledPackages. And it requires callingUid to have INTERACT_ACROSS_USERS permission. That was failing some tests for auto. This CL makes sure that method is called with clean calling identity. Bug: 228253821 Test: atest CtsMultiUserTestCases:android.multiuser.cts.UserManagerTest#testCreateUser_withNewUserRequest_shouldCreateUserWithCorrectProperties Change-Id: Ia06b9d5e6501140541e8d520350368df1abe2f15 --- .../core/java/com/android/server/pm/UserManagerService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index bcdf4291ed41a..fcdab88a4c9b9 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -4207,7 +4207,9 @@ public class UserManagerService extends IUserManager.Stub { writeUserListLP(); } updateUserIds(); - mPm.onNewUserCreated(preCreatedUser.id, /* convertedFromPreCreated= */ true); + Binder.withCleanCallingIdentity(() -> { + mPm.onNewUserCreated(preCreatedUser.id, /* convertedFromPreCreated= */ true); + }); dispatchUserAdded(preCreatedUser, token); return preCreatedUser; }