code: public UserHandle addUser(int id, String name, int flags) {
      UserHandle userHandle =
          id == UserHandle.USER_SYSTEM ? Process.myUserHandle() : new UserHandle(id);
      addUserProfile(userHandle);
      setSerialNumberForUser(userHandle, (long) id);
      userInfoMap.put(id, new UserInfo(id, name, flags));
      userPidMap.put(
          id,
          id == UserHandle.USER_SYSTEM
              ? Process.myUid()
              : id * UserHandle.PER_USER_RANGE + ShadowProcess.getRandomApplicationUid());
      return userHandle;
    }
docs: Creates a user with the specified name, userId and flags.
  
  @param id the unique id of user
  @param name name of the user
  @param flags 16 bits for user type. See {@link UserInfo#flags}
  @return a handle to the new user