@ProfileUser private static boolean launchMainActivityInOwnerUser(final Context context) {
		// Never use CrossProfileApps, which is not working here on Android 10+ and some Android 9 devices (e.g. EMUI).
		final LauncherApps apps = (LauncherApps) context.getSystemService(Context.LAUNCHER_APPS_SERVICE);
		if (apps == null) return false;
		final ComponentName activity = Modules.getMainLaunchActivity(context);
		if (apps.isActivityEnabled(activity, Users.owner)) {
			Log.i(TAG, "Launching main activity in owner user..");
			apps.startMainActivity(activity, Users.owner, null, null);
			return true;
		}
		Log.i(TAG, "Launching main activity in owner user...");
		try {   // Since Android O, activities in owner user is invisible to managed profile.
			final Intent intent = new Intent(ACTION_MAIN).addFlags(FLAG_ACTIVITY_NEW_TASK);
			CrossProfile.decorateIntentForActivityInParentProfile(context, intent);
			context.startActivity(intent);
			return true;
		} catch (final RuntimeException e) { return false; }
	}
This is the normal procedure after ManagedProvision finished its provisioning, running in profile.
engine/src/main/java/com/oasisfeng/island/provisioning/IslandProvisioning.java