Setup Guide

On most middle to high end Android devices released after 2016, Island can be setup straightforward without hassle. But still on some devices, you may got “incompatible with your device” message on Google Play Store, or be notified during the setup with error message “Sorry, your device (or ROM) is incompatible with Island”, or other failures. In these cases, Island could probably still work on your device if setup manually.

If you are prompted to encrypt your device during the setup, it means your device was not pre-encrypted out of box. If you don’t want device decription (which may significantly degrade overall I/O performance on some low-end devices), it can be avoided with manual setup.

Preparation

First of all, you need to connect your Android device to a computer with USB cable, and the official ADB tool provided by Google.

To check whether the USB-connected Android device is properly recognized by your computer, type the following command in the shell (or Command Prompt on Windows):

adb devices

If no device is listed in the output, your Android device is not correctly recognized by the computer.

For Windows PC, this official guide and driver list for common OEM might be helpful. If it does not work out, the official Google Android USB driver should work for most Android devices, just manually install it, and select “Android ADB Interface” or “Android Composite ADB Interface”.

If your device is Xiaomi branded or runs MIUI, extra steps are required:

Activate Managed Mainland

IMPORTANT: Please read the LIMITATIONS OF MANAGED MAINLAND before proceeding to the following steps.

  1. Backup all data of your logged-in accounts.

  2. Remove all accounts in system “Settings” - “Accounts” (may vary on devices).

  3. Execute the following command in ADB shell.

    dpm set-profile-owner --user 0 --name Mainland com.oasisfeng.island/.IslandDeviceAdminReceiver

    If you get error message “… Not allowed to set the profile/device owner because there are already some accounts on the device”. make sure all accounts are removed. You may use ADB command dumpsys account|grep -A 3 Accounts: to reveal remaining accounts (including the hidden ones on some devices). Forcible removal of all accounts will be implemented in coming version of Island, please stay tuned.

    Some ROM variants (e.g. MIUI) enforce extra security policy which may block the above command, if you got permission-related error message, please check the development (or security) settings to enable USB-debugging related security options, then retry the “dpm ...” command again.

  4. Start Island app and your Mainland is now managed.

Activate Managed Mainland (with Root, Experimental)

IMPORTANT: Use this method only if you can’t use the non-root method above. This is currently experimental, and may face different experience than the non-root method.

  1. Su to “system” user in root shell: su system
  2. Create a XML file profile_owner.xml in /data/system/users/0 with the following content: ``` <?xml version=’1.0’ encoding=’utf-8’ standalone=’yes’ ?>

```

  1. Ensure the newly created profile_owner.xml has owner and group of system. (Should be fine if created as user “system”)
  2. Go to system Settings - Device Admin, enable “Island” there.
  3. Reboot your device.

Deactivate Managed Mainland

Before Island can be uninstalled, Managed Mainland must be deactivated.

Open Island, Settings - Scoped Settings - Mainland, scroll to the bottom, click “Deactivate”.

Manual setup for Island

USE THIS GUIDE ONLY IF THE IN-APP ISLAND SETUP IS NOT VIABLE OR UNSUCCESSFUL.

Type adb -d shell to open ADB shell, and execute the following commands one by one in sequence:

  1. pm create-user --profileOf 0 --managed Island

    If succeed, you will be prompted with the ID of newly created user (usually 10 or above). Remember it and replace the <user id> in following commands with this ID.

    If you got “Error: couldn’t create User”, execute setprop fw.max_users 10 first, then retry the command above.

  2. pm install-existing --user <user id> com.oasisfeng.island

  3. dpm set-profile-owner --user <user id> com.oasisfeng.island/.IslandDeviceAdminReceiver

    If you get error message java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_DEVICE_ADMIN, please review the MIUI-specific steps above in “Preparation”.

  4. am start-user <user id>

If all goes well, Island will show the app list.