Gestion des appareils pour le secteur automobile

La gestion des appareils vous permet de gérer à distance un véhicule équipé d'Android Automotive OS (AAOS). Par exemple, le propriétaire d'un véhicule peut souhaiter rétablir à distance la configuration d'usine de l'unité d'infoloisirs.

Dans l'automobile, nous proposons deux catégories de gestion des appareils:

  • Appareil personnel. Un véhicule est détenu par un consommateur. Le propriétaire du véhicule gère la voiture à distance. Par exemple, le propriétaire utilise l'application mobile du véhicule pour rétablir à distance la configuration d'usine de l'unité d'infodivertissement.
  • Appareil d'entreprise. Le véhicule appartient à une entreprise ou à une organisation. Un administrateur gère la voiture à distance.

Appareils personnels

Dans le cas d'un appareil personnel, la gestion à distance du véhicule nécessite de tenir compte de l'état de conduite de la voiture. Par exemple, si le propriétaire du véhicule déclenche à distance un rétablissement de la configuration d'usine, le véhicule ne doit pas être rétabli en configuration d'usine si la voiture est conduite par une autre personne.

Nous disposons donc d'un ensemble d'API de gestion des appareils intégrées à des restrictions d'état de l'entraînement. Ces API peuvent être appelées par n'importe quelle application système (applications préinstallées dans la partition système) disposant des autorisations appropriées.

API de gestion d'appareils personnels

API Objectif
CarDevicePolicyManager.createUser()

Crée un utilisateur sur l'appareil en arrière-plan.

Comment fonctionne-t-il avec l'état du disque ?

Un nouvel utilisateur est créé en arrière-plan, quel que soit l'état du disque.

CarDevicePolicyManager.RemoveUser()

Supprime un utilisateur existant de l'appareil.

Comment interagit-il avec drive-state ?

Si l'utilisateur cible se trouve dans:

  • En arrière-plan, l'opération se poursuit.
  • au premier plan et que la voiture est PARQUÉE ou INCRITE, l'opération se poursuit.
  • Au premier plan et la voiture est EN TRAIN DE ROULER, un code d'exception est généré.
DevicePolicyManager.lockNow()

Verrouille un utilisateur existant sur l'appareil. Si l'utilisateur dispose déjà d'identifiants d'écran de verrouillage (par exemple, un code ou un schéma), l'écran reste allumé.

Comment cela interagit-il avec l'état de conduite ?

Si l'utilisateur cible se trouve dans:

  • En arrière-plan, l'opération se poursuit.
  • Premier plan et la voiture est GARÉE, AU RALENTI ou EN ROUTE, la procédure se poursuit si l'utilisateur est au premier plan (quel que soit l'état de conduite), sinon elle est ignorée. lockNow() n'est pas limité par l'état de distraction de l'expérience utilisateur.
DevicePolicyManager.resetPassword()

Verrouille un utilisateur existant sur l'appareil en définissant des identifiants de verrouillage de l'écran, si l'utilisateur ne dispose pas d'identifiants existants. L'écran reste allumé.

Comment interagit-il avec drive-state ?

Si l'utilisateur cible se trouve dans:

  • Background (Arrière-plan) : l'opération se poursuit.
  • Premier plan et la voiture est PARQUÉE, ou MARCHE À L'ÉCRAN, l'opération se poursuit.
  • Au premier plan et la voiture est EN ROUTE, un code d'exception est généré.
DevicePolicyManager.wipeData()

Déclenche un rétablissement de la configuration d'usine sur l'appareil.

Comment fonctionne-t-il avec l'état du disque ?

Quel que soit l'état du disque (PARKED, IDLING ou MOVING), l'opération se poursuit. Le système affiche une notification pour informer le conducteur qu'un rétablissement de la configuration d'usine est nécessaire.

Lorsque le véhicule est en mode PARKED (STATIONNEMENT), le conducteur peut interagir avec la notification pour choisir de réinitialiser l'appareil maintenant ou plus tard (lors du prochain démarrage de la voiture).

Exemple :

Notification de rétablissement de la configuration d'usine

Figure 1 : Le système publie une notification lorsque la réinitialisation d'usine est déclenchée.

Le véhicule est PARQUÉ

Figure 2. Lorsque le véhicule est en mode PARK (STATIONNEMENT), le conducteur peut interagir avec la notification pour choisir de réinitialiser l'appareil maintenant ou plus tard (lors du prochain démarrage de la voiture).

Le conducteur choisit "Réinitialiser".

Figure 3. Si le conducteur choisit de réinitialiser plus tard, un message de type "toast" indique que l'appareil sera réinitialisé à la configuration d'usine lors du prochain démarrage de la voiture.

Appareils d'entreprise

Les appareils Android Automotive OS équipés d'Android 13 ou version ultérieure peuvent déclarer la prise en charge de la fonctionnalité android.software.device_admin pour activer les API d'entreprise de gestion des appareils (pour en savoir plus, consultez DevicePolicyManager). Une organisation peut ensuite utiliser une application Device Policy Controller (DPC) pour contrôler les règles relatives aux appareils locales et les applications système sur l'appareil.

Automotive n'est pas compatible avec les profils professionnels. La seule solution de gestion compatible est donc un appareil entièrement géré, destiné aux appareils détenus par l'entreprise sur lesquels l'organisation a un contrôle total de la gestion.

Les entreprises qui gèrent le véhicule à distance doivent également tenir compte de son état de conduite. Par conséquent, des actions à distance spécifiques sont également intégrées à l'état de conduite d'un véhicule. Par exemple, le flux de réinitialisation d'usine dans DevicePolicyManager.setFactoryResetProtectionPolicy() s'applique également aux véhicules compatibles avec l'entreprise.

Toute API de DevicePolicyManagercode> peut générer une exception (par exemple, si le véhicule est en mouvement). Vous trouverez ci-dessous une liste partielle des API DevicePolicyManagercode>. Pour en savoir plus, consultez la présentation de l'administration des appareils.

  • DevicePolicyManager.removeActiveAdmin()
  • DevicePolicyManager.setFactoryResetProtectionPolicy()
  • DevicePolicyManager.installCaCert()
  • DevicePolicyManager.uninstallCaCert()
  • DevicePolicyManager.installKeyPair()
  • DevicePolicyManager.removeKeyPair()

Gestion d'appareils d'entreprise pour plusieurs utilisateurs

La gestion des appareils pour Automotive fonctionne avec la compatibilité multi-utilisateur. Cela signifie que plusieurs conducteurs peuvent utiliser le même véhicule appartenant à l'entreprise, mais qu'ils peuvent préserver la confidentialité de leurs données et éviter qu'elles ne soient exposées à d'autres conducteurs en utilisant leurs propres utilisateurs.

L'administrateur peut utiliser une application Device Policy Controller (DPC) comme décrit dans la section Créer un outil de contrôle des règles relatives aux appareils pour contrôler les règles appliquées à l'ensemble des appareils ou spécifiques à un utilisateur.

Les builds pour l'automobile utilisent généralement le mode utilisateur système headless, auquel cas le contrôleur de stratégie de l'appareil (DPC) est défini comme propriétaire de l'appareil (DO) de l'utilisateur système et propriétaire du profil (PO) de chaque autre utilisateur. L'administrateur distant doit affilier les utilisateurs de la PO, car certaines API (comme requestBugreport()) ne sont disponibles que si tous les utilisateurs sont affiliés. L'administrateur à distance doit ensuite sélectionner le DPC approprié pour exécuter des actions. Si l'action est associée à l'appareil (par exemple, la réinitialisation d'usine via wipeData()), elle doit utiliser le DPC DO. S'il est associé à un utilisateur (comme addUserRestriction()), il doit utiliser le DPC de l'ordre d'achat.

L'application DPC nécessite un IPC entre le DO et le PO. Nous vous recommandons l'API Connect Apps décrite dans la section Applications professionnelles et personnelles connectées.

Pour en savoir plus sur la façon dont une application DPC gère plusieurs utilisateurs, consultez la section Utilisateurs affiliés.