Skip to content

Instantly share code, notes, and snippets.

@Akianonymus
Last active April 20, 2024 05:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Akianonymus/1fb3c040080f79e7a015c7948e874499 to your computer and use it in GitHub Desktop.
Save Akianonymus/1fb3c040080f79e7a015c7948e874499 to your computer and use it in GitHub Desktop.
Create multiple profiles for ISLAND app

Setup multiple island spaces

Note: Must have an work profile already setup, So that we can modify fw.sys.max_profiles to allow more work profiles

su # to gain root access
resetprop ro.debuggable 1 
am restart

Modify fw.sys.max_profiles prop

setprop fw.sys.max_profiles 10

Create new work profile

# this is the user id of the initial island which was setup from the application
exid="10"
id="$(pm create-user --profileOf 0 --managed Island | grep -Eo '[0-9]+')"
echo "ID: ${id}"

Open /data/system/users/11.xml and add following code below <name> Island </name> but above <user>

where 11 is the user id of newly created work profile

<restrictions no_wallpaper="true" />
<device_policy_local_restrictions>
    <restrictions_user user_id="10">
        <restrictions allow_parent_profile_app_linking="true" />
    </restrictions_user>
</device_policy_local_restrictions>

It should look like this

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<user id="10" serialNumber="28" flags="4144" type="android.os.usertype.profile.MANAGED" created="1652171823625" lastLoggedIn="1652351262370" lastLoggedInFingerprint="Sat Apr 23 21:25:20 IST 2022" profileGroupId="0" profileBadge="0">
    <name> Island </name>
    <restrictions no_wallpaper="true" />
    <device_policy_local_restrictions>
        <restrictions_user user_id="10">
            <restrictions allow_parent_profile_app_linking="true" />
        </restrictions_user>
    </device_policy_local_restrictions>
    <lastRequestQuietModeEnabledCall>1652340558380</lastRequestQuietModeEnabledCall>
</user>

Execute these commands

cd "/data/system/users/${exid:?}" || exit 1
cp app_idle_stats.xml appwidgets.xml \
   device_policies.xml \
   package-restrictions.xml profile_owner.xml \
   settings_secure.xml settings_ssaid.xml settings_system.xml \
   "/data/system/users/${id:?}/"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment