Compatibilité multi-utilisateur

Android prend en charge plusieurs utilisateurs sur un même appareil Android en séparant les utilisateurs et les données d'application. 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 un appareil une personne. 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 exécuter dans en arrière-plan lorsqu'un autre utilisateur est actif ; le système gère l'arrêt aux utilisateurs de conserver les ressources le cas échéant. Des utilisateurs secondaires peuvent être créés soit directement via l'interface utilisateur, soit à partir d'un Appareil d'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é. Utilisateurs et peuvent disposer de leur propre compte, mais ils ne doivent pas nécessairement des comptes de service. La liste des comptes diffère selon les utilisateurs. Pour en savoir plus, reportez-vous au Compte classe.
  • 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 avoir plusieurs profils. Les profils sont créés à l'aide d'un Appareil d'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 au sein de 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 pas être supprimé, sauf en rétablissant la configuration d'usine et fonctionne toujours, même lorsque et les 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, des appareils de ce type 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 administrateur). utilisateur) et ne peut pas avoir d'impact sur les autres utilisateurs d'un même appareil. Ces utilisateurs peuvent exécuter en arrière-plan et de continuer à disposer d’une connectivité réseau.
  • Utilisateur invité:utilisateur secondaire temporaire. Les utilisateurs invités ont un accès pour supprimer rapidement l'utilisateur invité lorsqu'il n'est plus utile. Il peut y avoir être un seul utilisateur invité à la fois.
  • Administrateur:utilisateur autorisé à créer et supprimer d'autres utilisateurs et 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é:créé par une application pour contenir des données professionnelles et des applications. 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 partagé par l'utilisateur parent et le profil de l'entreprise.
  • 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 la prise en charge de bout en bout de la fonctionnalité. Les OEM doivent ajouter des personnalisations pour fournir pour les utilisateurs d'Android.
  • Profil privé:il s'agit d'un espace de bac à sable séparé du reste de l'appareil. qui peut être verrouillé séparément de l'utilisateur principal. Un profil privé ne peut exister que pour utilisateur principal. Lorsque le profil privé est déverrouillé, les applications deviennent visibles dans les paramètres, ShareSheet, Photopicker et DocsUI, mais les applications sont masquées lorsque 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 les frameworks/base/core/res/res/xml/config_user_types.xml. Cela facilite la modification de la configuration par défaut pour chaque type d'utilisateur, y compris ses restrictions par défaut, ses icônes, ses badges et le nombre maximal d'utilisateurs autorisé.

En plus des types d'utilisateurs AOSP configurables, les OEM peuvent définir de nouveaux types de profil à l'aide du 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 le mode 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 l'appareil fabricants ou autres ont modifié leurs paramètres, ils doivent veiller à ce que les SMS et des services de téléphonie, tels que définis dans les Compatibilité avec Android un document de définition (CDD).

Gestion de plusieurs utilisateurs

Gestion des utilisateurs et des profils (à l'exception des profils dont l'accès est limité) est effectuée par des applications qui appellent l'API de manière programmatique dans 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 le téléphone et les SMS pour un utilisateur secondaire, accédez à Paramètres > Utilisateurs, sélectionnez et désactivez le paramètre Autoriser les appels 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 Services Bluetooth actifs. De plus, le processus système interrompt la lecture en 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.

Si plusieurs personnes utilisent un même appareil Android, respectez les consignes suivantes : le comportement des consommateurs:

  • Les notifications s'affichent simultanément pour tous les comptes d'un même utilisateur.
  • 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 administrateur peut supprimer des applications, voire l'intégralité de l'espace de travail établi. par les utilisateurs secondaires.
  • Par défaut, les informations d'une session utilisateur Invité ne sont pas conservées lors de la fermeture du 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 des superpositions de ressources

Android Automotive multi-utilisateur

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

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: <ph type="x-smartling-placeholder">
      </ph>
    • 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: <ph type="x-smartling-placeholder">
      </ph>
    • Ne l'utilisez pas en arrière-plan (après avoir été éloigné du véhicule).
    • Elles peuvent être créées directement via l'interface utilisateur.
    • ont des données d'application distinctes, mais partagent des paramètres système ; Par exemple, le Wi-Fi et Bluetooth

Mises en garde

Les exceptions suivantes s'appliquent aux utilisateurs système sans adresse IP de cluster et aux utilisateurs standards (secondaires) de Automobile:

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

Permettre 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 headless, les fabricants d'appareils doivent activer le mode multi-utilisateur, comme décrit ci-dessus.

Lorsque l'utilisateur headless est activé: <ph type="x-smartling-placeholder">
    </ph>
  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 Compatibilité multi-utilisateur dans l'automobile.

Mode multi-utilisateur Android Automotive sur plusieurs écrans

<ph type="x-smartling-placeholder">

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 d'utilisateurs simultanés dans Android Automotive OS afin de proposer des expériences en voiture offrant plusieurs aux passagers une interface utilisateur 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 les éléments suivants configuration supplémentaire:

<!-- 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 en voiture pour plusieurs en tant qu'invités. Pour permettre à plusieurs utilisateurs invités d'utiliser le service de développement, les fabricants doivent définir une superposition de ressources qui configure le nombre maximal d'invités utilisateurs de frameworks/base/core/res/res/xml/config_user_types.xml, comme exemple 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>