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

Commit 5ed75b7a authored by Felipe Leme's avatar Felipe Leme
Browse files

Change flag used on HsumBootUserInitializer.designateMainUserOnBoot()

Initially it was using create_initial_user, but that flag is already
ramped on main, so it's better to use demote_main_user instead:

$ adb shell aflags list | egrep '(create_initial_user|demote_main_user)'
android.multiuser.create_initial_user enabled  - default read-write system
android.multiuser.demote_main_user    disabled - default read-write system

Bug: 402486365
Test: atest HsumBootUserInitializerDesignateMainUserOnBootTest
Flag: android.multiuser.demote_main_user

Change-Id: I866d20b9356976e922168e41968a1a8dd56189fb
parent 9bbaf778
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -343,8 +343,8 @@ public final class HsumBootUserInitializer {
        pw.print(res.getBoolean(R.bool.config_isMainUserPermanentAdmin));
        pw.print(" " + SYSPROP_DESIGNATE_MAIN_USER + ": ");
        pw.print(SystemProperties.get(SYSPROP_DESIGNATE_MAIN_USER, "N/A"));
        pw.print(" flag_create_initial_user: ");
        pw.println(Flags.createInitialUser());
        pw.print(" flag_demote_main_user: ");
        pw.println(Flags.demoteMainUser());

        pw.print("Create initial user on boot: ");
        pw.println(createInitialUserOnBoot(context));
@@ -435,11 +435,11 @@ public final class HsumBootUserInitializer {
        }
        // Ignore devices that should not create a main user while flag is not ramped up yet
        // TODO(b/402486365): remove this workaround after flag is ramped up
        if (!Flags.createInitialUser() && res.getBoolean(R.bool.config_createInitialUser)
        if (!Flags.demoteMainUser() && res.getBoolean(R.bool.config_createInitialUser)
                && !defaultValue) {
            Slogf.i(TAG, "designateMainUserOnBoot(): overriding defaultValue to true (because "
                    + "Flags.createInitialUser()=%b and config_createInitialUser=%b)",
                    Flags.createInitialUser(), res.getBoolean(R.bool.config_createInitialUser));
                    + "Flags.demoteMainUser()=%b and config_createInitialUser=%b)",
                    Flags.demoteMainUser(), res.getBoolean(R.bool.config_createInitialUser));
            defaultValue = true;
        }
        if (!Build.isDebuggable()) {
+7 −7
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
 */
package com.android.server.pm;

import static android.multiuser.Flags.FLAG_CREATE_INITIAL_USER;
import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.server.pm.HsumBootUserInitializer.SYSPROP_DESIGNATE_MAIN_USER;
@@ -100,17 +100,17 @@ abstract class AbstractHsumBootUserInitializerConstructorHelpersTestCase {
    }

    @SuppressWarnings("deprecation") // TODO(b/341129262): SetFlagsRule methods are deprecated
    protected final void setCreateInitialUserFlag(boolean value) {
        boolean before =  Flags.createInitialUser();
    protected final void setDemoteMainUserFlag(boolean value) {
        boolean before =  Flags.demoteMainUser();
        if (before == value) {
            Log.v(mTag, "setCreateInitialUserFlag(): already " + value);
            Log.v(mTag, "setDemoteMainUserFlag(): already " + value);
            return;
        }
        Log.v(mTag, "setCreateInitialUserFlag(): changing from " + before + " to " + value);
        Log.v(mTag, "setDemoteMainUserFlag(): changing from " + before + " to " + value);
        if (value) {
            setFlagsRule.enableFlags(FLAG_CREATE_INITIAL_USER);
            setFlagsRule.enableFlags(FLAG_DEMOTE_MAIN_USER);
        } else {
            setFlagsRule.disableFlags(FLAG_CREATE_INITIAL_USER);
            setFlagsRule.disableFlags(FLAG_DEMOTE_MAIN_USER);
        }
    }

+5 −5
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ public final class HsumBootUserInitializerDesignateMainUserOnBootTest

    private final boolean mIsDebuggable;
    private final boolean mSysPropDesignateMainUser;
    private final boolean mFlagCreateInitialUser;
    private final boolean mFlagDemoteMainUser;
    private final boolean mConfigCreateInitialUser;
    private final boolean mConfigDesignateMainUser;
    private final boolean mConfigIsMainUserPermanentAdmin;
@@ -390,19 +390,19 @@ public final class HsumBootUserInitializerDesignateMainUserOnBootTest
    }

    public HsumBootUserInitializerDesignateMainUserOnBootTest(boolean isDebuggable,
            boolean sysPropDesignateMainUser, boolean flagCreateInitialUser,
            boolean sysPropDesignateMainUser, boolean flagDemoteMainUser,
            boolean configCreateInitialUser, boolean configDesignateMainUser,
            boolean configIsMainUserPermanentAdmin,  boolean result) {
        mSysPropDesignateMainUser = sysPropDesignateMainUser;
        mIsDebuggable = isDebuggable;
        mFlagCreateInitialUser = flagCreateInitialUser;
        mFlagDemoteMainUser = flagDemoteMainUser;
        mConfigCreateInitialUser = configCreateInitialUser;
        mConfigDesignateMainUser = configDesignateMainUser;
        mConfigIsMainUserPermanentAdmin = configIsMainUserPermanentAdmin;
        mResult = result;
        Log.v(mTag, "Constructor: isDebuggable=" + isDebuggable
                + ", sysPropDesignateMainUser=" + sysPropDesignateMainUser
                + ", flagCreateInitialUser=" + flagCreateInitialUser
                + ", flagDemoteMainUser=" + flagDemoteMainUser
                + ", configCreateInitialUser=" + configCreateInitialUser
                + ", configDesignateMainUser=" + configDesignateMainUser
                + ", configIsMainUserPermanentAdmin=" + configIsMainUserPermanentAdmin
@@ -413,7 +413,7 @@ public final class HsumBootUserInitializerDesignateMainUserOnBootTest
    public void testDesignateMainUserOnBoot() {
        mockSysPropDesignateMainUser(mSysPropDesignateMainUser);
        mockIsDebuggable(mIsDebuggable);
        setCreateInitialUserFlag(mFlagCreateInitialUser);
        setDemoteMainUserFlag(mFlagDemoteMainUser);
        mockConfigDesignateMainUser(mConfigDesignateMainUser);
        mockConfigIsMainUserPermanentAdmin(mConfigIsMainUserPermanentAdmin);
        mockConfigCreateInitialUser(mConfigCreateInitialUser);