Gestion des appareils pour l'automobile

La gestion des appareils vous permet de gérer à distance un véhicule exécutant Android Automotive OS (AAOS). Par exemple, un propriétaire de véhicule peut souhaiter réinitialiser à distance les paramètres d'usine de l'unité d'infodivertissement.

Dans le secteur automobile, nous proposons deux catégories de gestion des appareils :

  • Appareil personnel. Un véhicule appartient à 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 effectuer à distance une réinitialisation d'usine de l'unité d'infodivertissement.
  • Appareil d'entreprise. Un 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 prendre en compte l'état de conduite de la voiture. Par exemple, si le propriétaire du véhicule déclenche à distance une réinitialisation d'usine, le véhicule ne doit pas être réinitialisé aux paramètres d'usine si la voiture est activement conduite par une autre personne.

Ainsi, nous disposons d’un ensemble d’API de gestion des appareils intégrées aux restrictions d’état du lecteur. Ces API peuvent être appelées par n'importe quelle application système (applications préinstallées dans la partition système) avec les autorisations appropriées.

API de gestion des appareils personnels

API But
CarDevicePolicyManager.createUser()

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

Comment interagit-il avec l’état du lecteur ?

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

CarDevicePolicyManager.RemoveUser()

Supprime un utilisateur existant sur l'appareil.

Comment interagit-il avec l’état du lecteur ?

Si l'utilisateur cible se trouve dans :

  • En arrière-plan, l'opération se déroule.
  • Au premier plan et la voiture est GARÉE ou AU RALENTI , l'opération se poursuit.
  • Au premier plan et la voiture bouge , un code d'exception est émis.
DevicePolicyManager.lockNow()

Verrouille un utilisateur existant sur l'appareil. Si l'utilisateur dispose d'informations d'identification d'écran de verrouillage existantes (par exemple, un code PIN ou un schéma), l'écran reste allumé.

Comment cela interagit-il avec l’état du lecteur ?

Si l'utilisateur cible se trouve dans :

  • En arrière-plan , l'opération se déroule.
  • Au premier plan et la voiture est PARKED ou, IDLING , ou, MOVING , elle continue si l'utilisateur est au premier plan (quel que soit l'état de conduite), ou ignorée dans le cas contraire. lockNow() n'est pas limité par l'état de distraction UX.
DevicePolicyManager.resetPassword()

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

Comment interagit-il avec l’état du lecteur ?

Si l'utilisateur cible se trouve dans :

  • En arrière-plan , l'opération se déroule.
  • Au premier plan et la voiture est GARÉE ou, AU RALENTI , l'opération se poursuit.
  • Au premier plan et la voiture bouge , un code d'exception est émis.
DevicePolicyManager.wipeData()

Déclenche une réinitialisation d’usine sur l’appareil.

Comment interagit-il avec l’état du lecteur ?

Quel que soit l'état du lecteur ( PARKED , IDLING ou MOVING ), l'opération se poursuit. Le système publie une notification pour informer le conducteur qu'une réinitialisation d'usine est requise.

Lorsque le véhicule est GARÉ, 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).

Par exemple:

Notification de réinitialisation d'usine

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

Le véhicule est GARÉ

Figure 2. Lorsque le véhicule est GARÉ, 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 toast indique que l'appareil sera réinitialisé aux paramètres d'usine au prochain démarrage de la voiture.

Appareils d'entreprise

Les appareils Android Automotive OS exécutant Android 13 et versions ultérieures peuvent déclarer la prise en charge de la fonctionnalité android.software.device_admin pour activer les API de gestion des appareils d'entreprise (pour en savoir plus, consultez DevicePolicyManager ). Une organisation peut ensuite utiliser une application Device Policy Controller (DPC) pour contrôler les stratégies locales des appareils et les applications système sur l'appareil.

Automotive ne prend pas en charge les profils professionnels , ce qui signifie que la seule solution de gestion prise en charge est un appareil entièrement géré , destiné aux appareils appartenant à l'entreprise sur lesquels l'organisation exerce un contrôle de gestion complet.

Les entreprises qui gèrent le véhicule à distance doivent également tenir compte de l'état de conduite du véhicule. 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 d'entreprise.

Toute API du code DevicePolicyManager > peut lever une exception (par exemple, si le véhicule est en mouvement). Une liste partielle des API du code DevicePolicyManager est fournie ci-dessous. Pour en savoir plus, consultez Présentation de l'administration des appareils .

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

Gestion des appareils d'entreprise pour plusieurs utilisateurs

La gestion des appareils pour l'automobile fonctionne avec la prise en charge multi-utilisateurs . Cela signifie que plusieurs conducteurs peuvent utiliser le même véhicule appartenant à l'entreprise, tout en préservant et en empêchant que la confidentialité de leurs données ne soit exposée à d'autres conducteurs en utilisant leurs propres utilisateurs.

L'administrateur peut utiliser une application Device Policy Controller (DPC), comme décrit dans Créer un contrôleur de stratégie de périphérique pour contrôler les stratégies à l'échelle du périphérique ou spécifiques à l'utilisateur.

Les versions automobiles utilisent généralement le mode utilisateur du système sans tête, auquel cas le contrôleur de politique de périphérique (DPC) serait défini comme propriétaire de périphérique (DO) de l'utilisateur du système et propriétaire de profil (PO) de tous les autres utilisateurs. L'administrateur distant doit affilier les utilisateurs du PO, car certaines API (comme requestBugreport() ) ne sont disponibles que si tous les utilisateurs sont affiliés. Ensuite, l'administrateur distant doit sélectionner le DPC approprié pour exécuter les actions. Si l'action est associée au périphérique (comme la réinitialisation d'usine via wipeData() ), elle doit utiliser le DO DPC. S'il est associé à un utilisateur (comme addUserRestriction() ), il doit utiliser le PO DPC.

L'application DPC a besoin d'un IPC entre le DO et le PO. Nous vous suggérons l'API Connect Apps décrite dans Applications professionnelles et personnelles connectées .

Pour plus d'informations sur la manière dont une application DPC gère plusieurs utilisateurs, consultez Utilisateurs affiliés .