Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7234748 authored by Yasin Kilicdere's avatar Yasin Kilicdere Committed by Android (Google) Code Review
Browse files

Merge "Fix early call of UMS.removeUser causing system crash during boot." into main

parents bb840074 322a96e6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -379,6 +379,10 @@ public class UserManagerService extends IUserManager.Stub {

    /** Count down latch to wait while boot user is not set.*/
    private final CountDownLatch mBootUserLatch = new CountDownLatch(1);

    /** Current boot phase. */
    private @SystemService.BootPhase int mCurrentBootPhase;

    /**
     * Internal non-parcelable wrapper for UserInfo that is not exposed to other system apps.
     */
@@ -968,6 +972,7 @@ public class UserManagerService extends IUserManager.Stub {

        @Override
        public void onBootPhase(int phase) {
            mUms.mCurrentBootPhase = phase;
            if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
                mUms.cleanupPartialUsers();

@@ -6204,6 +6209,11 @@ public class UserManagerService extends IUserManager.Stub {
            Slog.w(LOG_TAG, "Cannot remove user. " + restriction + " is enabled.");
            return false;
        }
        if (mCurrentBootPhase < SystemService.PHASE_ACTIVITY_MANAGER_READY) {
            Slog.w(LOG_TAG, "Cannot remove user, removeUser is called too early during boot. "
                + "ActivityManager is not ready yet.");
            return false;
        }
        return removeUserWithProfilesUnchecked(userId);
    }