From e5cedcacc5a16b4226d63bfbaee8f0b48d71a095 Mon Sep 17 00:00:00 2001 From: Yasin Kilicdere Date: Tue, 10 Jan 2023 17:21:49 +0000 Subject: [PATCH] Revert "Prevent removing the target user during a user switch." This reverts commit f9e7fdc38e53579d867575bed1cdb07507fbff68. Reason for revert: We need to prevent removing both target and source users during a user switch. b/264999003#comment2 ag/20948004 will be submitted instead of this one. Change-Id: Ie3bc4c72033fe3d2edaa5800a3c9d445002ef758 --- .../android/server/pm/UserManagerService.java | 20 ++----------------- .../server/pm/UserLifecycleStressTest.java | 15 -------------- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index d5095634b4a39..6bac90532645b 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1833,23 +1833,6 @@ public class UserManagerService extends IUserManager.Stub { return activityManagerInternal.getCurrentUserId(); } - /** - * Gets the current user id, or the target user id in case there is a started user switch. - * - * @return id of current or target foreground user, or {@link UserHandle#USER_NULL} if - * {@link ActivityManagerInternal} is not available yet. - */ - @VisibleForTesting - int getCurrentOrTargetUserId() { - ActivityManagerInternal activityManagerInternal = getActivityManagerInternal(); - if (activityManagerInternal == null) { - Slog.w(LOG_TAG, "getCurrentOrTargetUserId() called too early, ActivityManagerInternal" - + " is not set yet"); - return UserHandle.USER_NULL; - } - return activityManagerInternal.getCurrentUser().id; - } - /** * Gets whether the user is the current foreground user or a started profile of that user. * @@ -5424,7 +5407,8 @@ public class UserManagerService extends IUserManager.Stub { final long ident = Binder.clearCallingIdentity(); try { final UserData userData; - if (userId == getCurrentOrTargetUserId()) { + int currentUser = getCurrentUserId(); + if (currentUser == userId) { Slog.w(LOG_TAG, "Current user cannot be removed."); return false; } diff --git a/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java b/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java index b00fb92f9c46f..bbe89073d34da 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserLifecycleStressTest.java @@ -29,7 +29,6 @@ import android.content.pm.UserInfo; import android.os.RemoteException; import android.os.UserManager; import android.platform.test.annotations.Postsubmit; -import android.provider.Settings; import android.util.Log; import androidx.test.InstrumentationRegistry; @@ -38,7 +37,6 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.FunctionalUtils; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -64,22 +62,12 @@ public class UserLifecycleStressTest { private Context mContext; private UserManager mUserManager; private ActivityManager mActivityManager; - private String mRemoveGuestOnExitOriginalValue; @Before public void setup() { mContext = InstrumentationRegistry.getInstrumentation().getContext(); mUserManager = mContext.getSystemService(UserManager.class); mActivityManager = mContext.getSystemService(ActivityManager.class); - mRemoveGuestOnExitOriginalValue = Settings.Global.getString(mContext.getContentResolver(), - Settings.Global.REMOVE_GUEST_ON_EXIT); - - } - - @After - public void tearDown() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.REMOVE_GUEST_ON_EXIT, mRemoveGuestOnExitOriginalValue); } /** @@ -117,9 +105,6 @@ public class UserLifecycleStressTest { **/ @Test public void switchToExistingGuestAndStartOverStressTest() throws Exception { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.REMOVE_GUEST_ON_EXIT, "0"); - if (ActivityManager.getCurrentUser() != USER_SYSTEM) { switchUser(USER_SYSTEM); }