Compatibilité multi-utilisateur

Android prend en charge plusieurs utilisateurs sur un même appareil Android en séparant les comptes utilisateur et les données des applications. Par exemple, les parents peuvent autoriser leurs enfants utilisent la tablette familiale, une famille peut partager une voiture ou une équipe d'intervention critique peuvent partager un appareil mobile pour le service de garde.

Terminologie

Android utilise les termes suivants pour décrire les utilisateurs et les comptes Android.

Général

La gestion des appareils Android utilise les termes généraux suivants :

  • Utilisateur : chaque utilisateur est destiné à être utilisé par une personne physique différente. Chaque utilisateur dispose de données d'application distinctes et de paramètres uniques, et une interface utilisateur pour basculer explicitement entre les utilisateurs. Un utilisateur peut s'exécuter en arrière-plan lorsqu'un autre utilisateur est actif. Le système gère l'arrêt des utilisateurs pour économiser des ressources lorsque cela est approprié. Des utilisateurs secondaires peuvent être créés soit directement via l'interface utilisateur, soit à partir d'un Appareil Application Administration.
  • Account:les comptes sont contenus au sein d'un utilisateur, mais ne sont pas définis. par un utilisateur, qui n'est pas défini ni associé à un compte donné. Les utilisateurs et les profils contiennent leurs propres comptes uniques, mais ils ne sont pas obligés d'en avoir pour fonctionner. La liste des comptes diffère selon l'utilisateur. Pour en savoir plus, consultez la définition de la classe Account.
  • Profil:un profil contient des données d'application distinctes, mais en partage quelques-unes. des paramètres système spécifiques (Wi-Fi et Bluetooth, par exemple). Un profil est un sous-ensemble et liés à l'existence d'un utilisateur. Un utilisateur peut disposer de plusieurs profils. Les profils sont créés à l'aide d'un Appareil Application Administration. Un profil possède toujours une association immuable à un utilisateur parent, défini par l'utilisateur qui a créé le profil. Les profils ne au-delà de la durée de vie de l'utilisateur créateur.
  • Application : les données d'une application existent pour chaque utilisateur associé. Les données des applications sont isolées dans un bac à sable des autres applications du même utilisateur. Applications au sein d’un même utilisateur peuvent interagir les uns avec les autres via l’IPC. Pour en savoir plus, consultez Android pour les entreprises.

Catégories d'utilisateurs

L'administration des appareils Android utilise les catégories d'utilisateurs suivantes.

  • Utilisateur système:premier utilisateur ajouté à un appareil. L'utilisateur système ne peut être supprimé que par une réinitialisation d'usine et est toujours en cours d'exécution, même lorsque d'autres utilisateurs sont au premier plan. Cet utilisateur dispose également de privilèges spéciaux et paramètres que lui seul peut définir.
  • Utilisateur système headless:premier utilisateur ajouté à un appareil si celui-ci est configuré pour qu'il s'exécute en mode utilisateur système headless (en définissant ro.fw.mu.headless_system_user=true). L'utilisateur du système headless s'exécute toujours en arrière-plan. Par conséquent, de tels appareils nécessitent aux utilisateurs de premier plan pour permettre une interaction utilisateur.
  • Utilisateur secondaire:tout utilisateur ajouté à l'appareil autre que le système. utilisateur. Les utilisateurs secondaires peuvent être supprimés (par eux-mêmes ou par un utilisateur administrateur) et ne peuvent pas avoir d'incidence sur les autres utilisateurs d'un appareil. Ces utilisateurs peuvent s'exécuter en arrière-plan et continuer à disposer d'une connectivité réseau.
  • Utilisateur invité:utilisateur secondaire temporaire. Les utilisateurs invités ont la possibilité explicite de supprimer rapidement l'utilisateur invité lorsque son utilité est terminée. Il ne peut y avoir qu'un seul utilisateur invité à la fois.
  • Utilisateur administrateur : utilisateur autorisé à créer et à supprimer d'autres utilisateurs, ainsi qu'à contrôler certains paramètres multi-utilisateurs généraux. Par défaut, seul l'utilisateur système est administrateur.

Catégories de profils

Android utilise les catégories de profils suivantes:

  • Profil géré : profil créé par une application pour contenir des données et des applications professionnelles. Ils sont gérés exclusivement par le propriétaire de la fiche (l'application qui créé le profil de l'entreprise). Le lanceur d'applications, les notifications et les tâches récentes sont partagés par l'utilisateur parent et le profil professionnel.
  • Profil limité:utilise des comptes en fonction de l'utilisateur parent, qui peut contrôler les applications disponibles sur le profil limité ; Disponible uniquement sur les tablettes et les téléviseurs.
  • Cloner le profil:Android permet de créer un utilisateur de profil clone distinct. pour permettre l'exécution de deux instances d'une même application sur l'appareil. AOSP ne fournit pas de prise en charge de bout en bout de cette fonctionnalité. Les OEM doivent ajouter des personnalisations pour fournir pour les utilisateurs d'Android.
  • Profil privé : espace en bac à sable distinct du reste de l'appareil, qui peut être verrouillé indépendamment de l'utilisateur principal. Un profil privé ne peut exister que pour l'utilisateur principal. Lorsque le profil privé est déverrouillé, les applications deviennent visibles dans les paramètres, Sharesheet, le sélecteur de photos et l'interface utilisateur de Docs, mais elles sont masquées lorsqu'elles sont verrouillées. Le profil privé peut se trouver sur le même appareil avec le profil professionnel et cloner le profil.

Types d'utilisateurs

Android 11 a catégorisé les utilisateurs et les profils ci-dessus de façon bien définie types d'utilisateurs, représentant les différents types d'utilisateurs et de profils autorisés par le mode multi-utilisateur Android .

Les types d'utilisateurs AOSP prédéfinis sont définis dans frameworks/base/core/java/android/os/UserManager.java et incluent actuellement:

  • 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
  • android.os.usertype.profile.PRIVATE

Les OEM peuvent configurer ces types d'utilisateurs en superposant le fichier frameworks/base/core/res/res/xml/config_user_types.xml. Cela permet de modifier facilement la configuration par défaut de chaque type d'utilisateur, y compris ses restrictions, icônes, badges et nombre maximal d'utilisateurs autorisés par défaut.

En plus des types d'utilisateurs AOSP configurables, les OEM peuvent définir de nouveaux types de profils à l'aide du fichier frameworks/base/core/res/res/xml/config_user_types.xml. Cela permet aux OEM d'introduire leurs propres types de profils non gérés s'ils le souhaitent. Toutefois, il appartient à l'OEM d'apporter les modifications nécessaires à la plate-forme afin de prendre en charge modifications, y compris la modification de tout code vérifiant les profils gérés pour gérer le nouveau profil le cas échéant.

Activer la fonctionnalité multi-utilisateur

La fonctionnalité multi-utilisateur est désactivée par défaut. À la fonctionnalité, les fabricants d'appareils doivent définir une superposition de ressources qui remplace les valeurs suivantes dans 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>

Pour appliquer cette superposition et activer les utilisateurs invités et secondaires sur l'appareil, utilisez la fonctionnalité DEVICE_PACKAGE_OVERLAYS du système de compilation Android pour remplacer les valeurs pour:

  • config_multiuserMaximumUsers dont la valeur est supérieure à 1
  • config_enableMultiUserUI avec true

Les fabricants d'appareils peuvent décider du nombre maximal d'utilisateurs. Si les fabricants d'appareils ou d'autres personnes ont modifié les paramètres, ils doivent s'assurer que les SMS et la téléphonie fonctionnent comme défini dans le document de définition de la compatibilité Android (CDD).

Gérer plusieurs utilisateurs

La gestion des utilisateurs et des profils (à l'exception des profils restreints) est effectuée par des applications qui appellent de manière programmatique l'API dans la classe DevicePolicyManager pour limiter l'utilisation.

Les entreprises peuvent employer des utilisateurs et des profils pour gérer la durée de vie et le champ d'application des applications et données sur les appareils, à l'aide des types décrits ci-dessus dans en même temps que Gestionnaire de règles de l'appareil et UserManager API permettant de créer des solutions uniques adaptées à leurs cas d'utilisation.

Comportement du système multi-utilisateur

Lorsque des utilisateurs sont ajoutés à un appareil, certaines fonctionnalités sont supprimées un autre utilisateur se trouve au premier plan. Les données des applications étant séparées par utilisateur, les l'état de ces applications diffère selon les utilisateurs. Par exemple, l'adresse e-mail destinée à un compte d'un utilisateur qui n'est actuellement pas sélectionné ne sera pas disponible tant que cet utilisateur et le compte sont actifs sur l'appareil.

Remarque : Pour activer ou désactiver les fonctions téléphone et SMS pour un utilisateur secondaire, accédez à Paramètres > Utilisateurs, sélectionnez l'utilisateur, puis désactivez l'option Autoriser les appels téléphoniques et les SMS.

Certaines restrictions s'appliquent lorsqu'un utilisateur secondaire est en arrière-plan. Par exemple, l'utilisateur secondaire en arrière-plan ne peut pas afficher l'interface utilisateur ni activer les services Bluetooth. De plus, le processus système interrompt l'arrière-plan aux utilisateurs secondaires si l'appareil a besoin de mémoire supplémentaire pour effectuer des opérations dans utilisateur de premier plan.

Lorsque vous utilisez plusieurs utilisateurs sur un appareil Android, tenez compte du comportement suivant :

  • Les notifications s'affichent pour tous les comptes d'un même utilisateur en même temps.
  • Les notifications des autres utilisateurs n'apparaissent pas tant qu'elles n'ont pas été activées.
  • Chaque utilisateur dispose d'un espace de travail pour installer et placer des applications.
  • Aucun utilisateur n'a accès aux données d'application d'un autre utilisateur.
  • N'importe quel utilisateur peut avoir une incidence sur les applications installées pour tous les utilisateurs.
  • Un utilisateur administrateur peut supprimer des applications ou même l'ensemble de l'espace de travail créé par des utilisateurs secondaires.
  • Par défaut, les informations d'une session utilisateur invité ne sont pas conservées lorsque vous quittez le mode invité. Si vous souhaitez que les informations d'une session utilisateur invité soient conservées, vous devez créer une ressource de superposition qui définit config_guestUserAllowEphemeralStateChange sur false Pour plus d'informations sur la création de fichiers de superposition, reportez-vous à Personnaliser la compilation avec superpositions de ressources.

Android Automotive multi-utilisateur

Android Automotive s'appuie sur l'implémentation multi-utilisateur d'Android pour offrir une expérience d'appareil partagée.

Types d'utilisateurs du secteur automobile

Outre les types d'utilisateurs listés ci-dessus, les constructions automobiles sont remarquables pour ces types des utilisateurs:

  • Utilisateur système headless. L'utilisateur système héberge tous les services système. Pour accepter plusieurs utilisateurs sur Automotive, l'utilisateur système doit également être sans interface graphique. Il n'y a qu'un seul utilisateur headless. Un utilisateur système headless :
    • Doit toujours s'exécuter en arrière-plan.
    • ne peuvent pas être supprimées ni consultées directement par l'utilisateur, sauf dans le cas d'un Appareil ; Provisionnement. Par exemple, les utilisateurs ne peuvent pas passer à ce type d'utilisateur pour effectuer des tâches telles que télécharger des applications ou ajouter des comptes.
    • Ne peut être effacé que par une réinitialisation aux paramètres d'usine.
  • Utilisateurs standards : Identique à Utilisateurs secondaires, décrits ci-dessus, à l'exception des utilisateurs:
    • Ne s'exécute pas en arrière-plan (après avoir été désactivé).
    • Elles peuvent être créées directement dans l'interface utilisateur.
    • ont des données d'application distinctes, mais partagent des paramètres système ; (par exemple, le Wi-Fi et le Bluetooth)

Mises en garde

Les exceptions suivantes s'appliquent aux utilisateurs système sans tête et aux utilisateurs standards (secondaires) dans Automotive :

  • L'utilisateur du système headless n'est pas compatible avec les profils professionnels.
  • Par défaut, les utilisateurs standards (secondaires) disposent d'un accès complet aux appels téléphoniques et aux messages.
  • Par défaut, les utilisateurs standards (secondaires) ne s'exécutent pas en arrière-plan.

Autoriser l'utilisateur du système headless

À partir d'Android 10, la fonctionnalité multi-utilisateur peut être utilisée pour les cas d'utilisation dans le secteur automobile. Important deux distinctions:

  • L'utilisateur système n'a pas d'interface graphique et s'exécute uniquement en arrière-plan.
  • Les utilisateurs humains n'interagissent pas avec l'utilisateur système.

Pour activer l'utilisateur système sans tête, les fabricants d'appareils doivent activer le multi-utilisateur comme décrit ci-dessus.

Lorsque l'utilisateur headless est activé :
  1. Pour déclarer l'appareil en tant qu'appareil automobile, ajoutez la fonctionnalité android.hardware.type.automotive
  2. Définissez ro.fw.headless_system_user sur true.
  3. Définissez la valeur de config_multiuserMaximumUsers sur 2. (ou un niveau supérieur).

Pour en savoir plus, consultez la section Compatibilité avec plusieurs utilisateurs dans Automotive.

Mode multi-utilisateur Android Automotive sur plusieurs écrans

Une nouvelle fonctionnalité expérimentale d'Android 14 permet aux utilisateurs secondaires (qui ne sont pas l'utilisateur de premier plan actuel) de lancer des activités et d'obtenir l'accès à l'interface utilisateur de l'écran auquel ils sont attribués. Cette fonctionnalité permet à plusieurs utilisateurs simultanés dans Android Automotive OS de prendre en charge des expériences dans la voiture qui offrent à plusieurs passagers une expérience d'UI dédiée dans une seule instance Android.

Pour activer cette fonctionnalité à des fins de développement, les fabricants d'appareils doivent définir une superposition de ressources pour remplacer la valeur suivante dans 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>

Vous pouvez tester une expérience réservée aux passagers (sans conducteur) en activant la configuration supplémentaire suivante :

<!-- 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>

Sous Android 14, vous pouvez activer l'expérience dans la voiture pour plusieurs passagers en tant qu'utilisateurs invités. Pour activer plusieurs utilisateurs invités à des fins de développement, les fabricants d'appareils doivent définir une superposition de ressources qui configure le nombre maximal d'utilisateurs invités autorisé dans frameworks/base/core/res/res/xml/config_user_types.xml, comme illustré ci-dessous :

<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>