Admite múltiples usuarios

Android admite múltiples usuarios en un solo dispositivo Android al separar las cuentas de usuario y los datos de las aplicaciones. Por ejemplo, los padres pueden permitir que sus hijos usen la tableta familiar, una familia puede compartir un automóvil o un equipo de respuesta crítica puede compartir un dispositivo móvil para realizar tareas de guardia.

Terminología

Android utiliza los siguientes términos al describir a los usuarios y cuentas de Android.

General

La administración de dispositivos Android utiliza los siguientes términos generales:

  • Usuario: Cada usuario está destinado a ser utilizado por una persona física diferente. Cada usuario tiene datos de aplicación distintos y algunas configuraciones únicas, así como una interfaz de usuario para cambiar explícitamente entre usuarios. Un usuario puede ejecutarse en segundo plano cuando otro usuario está activo; el sistema gestiona el cierre de usuarios para conservar recursos cuando sea apropiado. Los usuarios secundarios se pueden crear directamente a través de la interfaz de usuario o desde una aplicación de administración de dispositivos .
  • Cuenta: Las cuentas están contenidas dentro de un usuario, pero no están definidas por un usuario, ni un usuario está definido o vinculado a una cuenta determinada. Los usuarios y perfiles contienen sus propias cuentas únicas, pero no es necesario que tengan cuentas para funcionar. La lista de cuentas difiere según el usuario. Para obtener más información, consulte la definición de clase de cuenta .
  • Perfil: un perfil tiene datos de aplicaciones separados pero comparte algunas configuraciones de todo el sistema (por ejemplo, Wi-Fi y Bluetooth). Un perfil es un subconjunto de la existencia de un usuario y está vinculado a ella. Un usuario puede tener múltiples perfiles. Los perfiles se crean a través de una aplicación de administración de dispositivos . Un perfil siempre tiene una asociación inmutable con un usuario principal, definido por el usuario que creó el perfil. Los perfiles no existen más allá de la vida del usuario que los crea.
  • Aplicación: los datos de una aplicación existen dentro de cada usuario asociado. Los datos de la aplicación están protegidos de otras aplicaciones dentro del mismo usuario. Las aplicaciones del mismo usuario pueden interactuar entre sí a través de IPC. Para obtener más información, consulte Android para empresas .

Categorías de usuarios

La administración de dispositivos Android utiliza las siguientes categorías de usuarios.

  • Usuario del sistema: primer usuario agregado a un dispositivo. El usuario del sistema no se puede eliminar excepto mediante un restablecimiento de fábrica y siempre está ejecutándose incluso cuando otros usuarios están en primer plano. Este usuario también tiene privilegios especiales y configuraciones que solo él puede establecer.
  • Usuario del sistema sin cabeza: primer usuario agregado a un dispositivo si el dispositivo está configurado para ejecutarse en modo de usuario del sistema sin cabeza (configurando ro.fw.mu.headless_system_user=true ). El usuario del sistema sin cabeza siempre se ejecuta en segundo plano, por lo que dichos dispositivos requieren usuarios adicionales en primer plano para permitir la interacción del usuario.
  • Usuario secundario: cualquier usuario agregado al dispositivo que no sea el usuario del sistema. Los usuarios secundarios pueden ser eliminados (ya sea por ellos mismos o por un usuario administrador) y no pueden afectar a otros usuarios en un dispositivo. Estos usuarios pueden ejecutarse en segundo plano y seguir teniendo conectividad de red.
  • Usuario invitado: Usuario secundario temporal. Los usuarios invitados tienen una opción explícita para eliminar rápidamente al usuario invitado cuando termina su utilidad. Sólo puede haber un usuario invitado a la vez.
  • Usuario administrador: un usuario que tiene permiso para crear y eliminar otros usuarios, así como para controlar algunas configuraciones generales multiusuario. De forma predeterminada, sólo el usuario del sistema es administrador.

Categorías de perfiles

Android utiliza las siguientes categorías de perfiles:

  • Perfil administrado: creado por una aplicación para contener datos de trabajo y aplicaciones. Son administrados exclusivamente por el propietario del perfil (la aplicación que creó el perfil corporativo). El usuario principal y el perfil corporativo comparten el iniciador, las notificaciones y las tareas recientes.
  • Perfil restringido: utiliza cuentas basadas en el usuario principal, quien puede controlar qué aplicaciones están disponibles en el perfil restringido. Disponible solo en tabletas y dispositivos de televisión.
  • Perfil de clonación: Android admite la creación de un tipo de usuario de perfil de clonación independiente para permitir la ejecución de dos instancias de una única aplicación en el dispositivo. AOSP no proporciona soporte de extremo a extremo para la función. Los OEM deben agregar personalizaciones para ofrecer la función completa a los usuarios de Android.

Tipos de usuarios

Android 11 ha formulado la clasificación anterior de usuarios y perfiles en tipos de usuarios bien definidos, que representan todos los diferentes tipos de usuarios y perfiles permitidos por la función multiusuario de Android.

Los tipos de usuarios AOSP predefinidos se definen en frameworks/base/core/java/android/os/UserManager.java y actualmente incluyen:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE

Los OEM tienen la capacidad de configurar estos tipos de usuarios superponiendo el archivo frameworks/base/core/res/res/xml/config_user_types.xml . Esto facilita cambiar la configuración predeterminada para cada tipo de usuario, incluidas sus restricciones predeterminadas, íconos, insignias y el número máximo permitido de usuarios.

Además de los tipos de usuarios AOSP configurables, los OEM pueden definir nuevos tipos de perfiles utilizando el archivo frameworks/base/core/res/res/xml/config_user_types.xml . Esto permite a los OEM introducir sus propios tipos de perfiles no administrados si lo desean. Sin embargo, es responsabilidad del OEM realizar modificaciones en la plataforma según sea necesario para admitir los cambios, incluida la modificación de cualquier código que verifique los perfiles administrados para manejar ahora el nuevo tipo de perfil, si corresponde.

Habilitar multiusuario

La función multiusuario está desactivada de forma predeterminada. Para habilitar la función, los fabricantes de dispositivos deben definir una superposición de recursos que reemplace los siguientes valores en frameworks/base/core/res/res/values/config.xml :

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Para aplicar esta superposición y habilitar usuarios invitados y secundarios en el dispositivo, use la función DEVICE_PACKAGE_OVERLAYS del sistema de compilación de Android para reemplazar los valores de:

  • config_multiuserMaximumUsers con un valor mayor que 1
  • config_enableMultiUserUI con true

Los fabricantes de dispositivos pueden decidir el número máximo de usuarios. Si los fabricantes de dispositivos u otros han modificado la configuración, deben garantizar que los SMS y la telefonía funcionen según lo definido en el Documento de definición de compatibilidad de Android (CDD).

Administrar múltiples usuarios

La administración de usuarios y perfiles (con excepción de los perfiles restringidos) la realizan aplicaciones que invocan mediante programación la API en la clase DevicePolicyManager para restringir el uso.

Las empresas pueden emplear usuarios y perfiles para administrar la vida útil y el alcance de las aplicaciones y los datos en los dispositivos, utilizando los tipos descritos anteriormente junto con las API DevicePolicyManager y UserManager para crear soluciones únicas adaptadas a sus casos de uso.

Comportamiento del sistema multiusuario

Cuando se agregan usuarios a un dispositivo, algunas funciones se restringen cuando hay otro usuario en primer plano. Dado que los datos de las aplicaciones están separados por usuario, el estado de esas aplicaciones difiere según el usuario. Por ejemplo, el correo electrónico destinado a la cuenta de un usuario que actualmente no está enfocado no estará disponible hasta que ese usuario y esa cuenta estén activos en el dispositivo.

Nota : Para habilitar o deshabilitar las funciones de teléfono y SMS para un usuario secundario, vaya a Configuración > Usuarios , seleccione el usuario y desactive la configuración Permitir llamadas telefónicas y SMS .

Existen algunas restricciones cuando un usuario secundario está en segundo plano. Por ejemplo, el usuario secundario en segundo plano no puede mostrar la interfaz de usuario ni activar los servicios Bluetooth. Además, el proceso del sistema detendrá a los usuarios secundarios en segundo plano si el dispositivo necesita memoria adicional para las operaciones del usuario en primer plano.

Al emplear varios usuarios en un dispositivo Android, tenga en cuenta el siguiente comportamiento:

  • Las notificaciones aparecen para todas las cuentas de un solo usuario a la vez.
  • Las notificaciones para otros usuarios no aparecen hasta que están activas.
  • Cada usuario obtiene un espacio de trabajo para instalar y colocar aplicaciones.
  • Ningún usuario tiene acceso a los datos de la aplicación de otro usuario.
  • Cualquier usuario puede afectar las aplicaciones instaladas para todos los usuarios.
  • Un usuario administrador puede eliminar aplicaciones o incluso todo el espacio de trabajo establecido por los usuarios secundarios.
  • De forma predeterminada, la información de una sesión de usuario Invitado no persiste al salir del modo Invitado. Si desea que la información de una sesión de usuario invitado persista, debe crear un archivo de superposición de recursos que establezca config_guestUserAllowEphemeralStateChange en false . Para obtener más información sobre la creación de archivos de superposición, consulte Personalización de la compilación con superposiciones de recursos .

Android Automotriz multiusuario

Android Automotive se basa en la implementación multiusuario de Android para brindar una experiencia de dispositivo compartida.

Tipos de usuarios automotrices

Además de los tipos de usuarios enumerados anteriormente, las compilaciones automotrices se destacan para estos tipos de usuarios:

  • Usuario del sistema sin cabeza. El usuario del sistema aloja todos los servicios del sistema. Para admitir múltiples usuarios en Automotive, el usuario del sistema también debe ser headless . Sólo hay un usuario sin cabeza. Un usuario del sistema sin cabeza:
    • Siempre debe ejecutarse en segundo plano.
    • El usuario no puede eliminarlo ni acceder directamente a él, excepto en el caso de Aprovisionamiento de dispositivos. Por ejemplo, los usuarios no pueden cambiar a este tipo de usuario para realizar tareas como descargar aplicaciones o agregar cuentas.
    • Solo se puede borrar mediante un restablecimiento de fábrica.
  • Usuarios habituales. Lo mismo que los Usuarios secundarios , descritos anteriormente, excepto que los usuarios secundarios:
    • No lo ejecute en segundo plano (después de haberlo desconectado).
    • Se puede crear directamente a través de la interfaz de usuario.
    • Tienen datos de aplicaciones separados pero comparten algunas configuraciones de todo el sistema. Por ejemplo, Wi-Fi y Bluetooth.

Advertencias

Las siguientes excepciones se aplican a los usuarios del sistema sin cabeza y a los usuarios habituales (secundarios) del sector automotor:

  • El usuario del sistema sin cabeza no admite perfiles de trabajo.
  • De forma predeterminada, los usuarios habituales (secundarios) tienen acceso completo a llamadas telefónicas y mensajes de texto.
  • De forma predeterminada, los usuarios normales (secundarios) no se ejecutan en segundo plano.

Habilitar al usuario del sistema sin cabeza

A partir de Android 10, la función multiusuario se puede utilizar para casos de uso automotrices. Las distinciones importantes incluyen:

  • El usuario del sistema no tiene cabeza y sólo se ejecuta en segundo plano.
  • Los usuarios humanos no interactúan con el usuario del sistema.

Para habilitar el usuario del sistema sin cabeza, los fabricantes de dispositivos deben habilitar el modo multiusuario como se describe anteriormente.

Cuando el usuario sin cabeza está habilitado:
  1. Para declarar que el dispositivo es Automotriz, agregue la función android.hardware.type.automotive .
  2. Establezca ro.fw.headless_system_user en true .
  3. Establezca el valor de config_multiuserMaximumUsers en 2 (o superior).

Para obtener más información, consulte Soporte multiusuario en automoción.

Android Automotive multiusuario en múltiples pantallas

Una nueva función experimental en Android 14 permite a los usuarios secundarios completos (que no son el usuario de primer plano actual) iniciar actividades y obtener acceso a la interfaz de usuario en la pantalla a la que están asignados. Esta característica permite que varios usuarios simultáneos en el sistema operativo Android Automotive admitan experiencias en el automóvil que brindan a varios pasajeros una experiencia de interfaz de usuario dedicada en una única instancia de Android.

Para habilitar esta característica para uso en desarrollo, los fabricantes de dispositivos deben definir una superposición de recursos para reemplazar el siguiente valor en frameworks/base/core/res/res/values/config.xml :

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Puede experimentar con una experiencia solo para pasajeros (sin conductor) habilitando la siguiente configuración adicional:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

En Android 14, puedes habilitar la experiencia en el automóvil para varios pasajeros como usuarios invitados. Para habilitar varios usuarios invitados para uso en desarrollo, los fabricantes de dispositivos deben definir una superposición de recursos que configure el número máximo permitido de usuarios invitados en frameworks/base/core/res/res/xml/config_user_types.xml , como en el siguiente ejemplo:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>