Automobile

Icône HAL de véhicule Android

De nombreux sous-systèmes de voiture s'interconnectent entre eux et avec le système d'infodivertissement embarqué (IVI) via diverses topologies de bus. Le type de bus et les protocoles exacts varient considérablement d'un fabricant à l'autre (et même entre différents modèles de véhicules de la même marque); les exemples incluent le bus CAN (Controller Area Network), le bus LIN (Local Interconnect Network), Media Oriented Systems Transport (MOST), ainsi que les réseaux Ethernet et TCP/IP de qualité automobile tels que BroadR-Reach.

La couche d'abstraction matérielle (HAL) d'Android Automotive fournit une interface cohérente avec le framework Android, quelle que soit la couche de transport physique. Ce véhicule HAL est l'interface pour le développement d'implémentations Android Automotive.

Les intégrateurs système peuvent implémenter un module HAL de véhicule en connectant des interfaces HAL de plate-forme spécifiques à la fonction (par exemple HVAC) avec des interfaces réseau spécifiques à la technologie (par exemple bus CAN). Les implémentations typiques peuvent inclure une unité de microcontrôleur (MCU) dédiée exécutant un système d'exploitation en temps réel propriétaire (RTOS) pour l'accès au bus CAN ou similaire, qui peut être connectée via une liaison série au processeur exécutant Android Automotive. Au lieu d'un MCU dédié, il peut également être possible d'implémenter l'accès au bus en tant que CPU virtualisé. Il appartient à chaque partenaire de choisir l'architecture adaptée au matériel tant que la mise en œuvre répond aux exigences d'interface pour le véhicule HAL.

Architecture

La HAL du véhicule est la définition de l'interface entre la voiture et le service de réseau du véhicule :

Architecture HAL de véhicule Android

Figure 1 . Architecture automobile HAL et Android du véhicule

  • API de voiture . Contient les API, y compris CarSensorManager . Pour plus de détails sur les API prises en charge, consultez /platform/packages/services/Car/car-lib .
  • Service de voiture . Situé à /platform/packages/services/Car/ .
  • Véhicule HAL . Interface qui définit les propriétés du véhicule que les équipementiers peuvent mettre en œuvre. Contient des métadonnées de propriété (par exemple, si la propriété du véhicule est un int et quels modes de modification sont autorisés). Situé dans hardware/libhardware/include/hardware/vehicle.h . Pour une implémentation de référence de base, reportez-vous à hardware/libhardware/modules/vehicle/ .

Pour plus de détails, voir Propriétés du véhicule .

Sécurité

Le véhicule HAL prend en charge ces niveaux de sécurité lors de l'accès aux données :

  • Accessible à l'application avec autorisation (via le service de voiture).
  • Accessible sans autorisation (via le service de voiture).

L'accès direct aux propriétés du véhicule n'est autorisé qu'aux composants système sélectionnés avec le réseau du véhicule avec protection d'accès selinux. La plupart des applications passent par un contrôle d'accès supplémentaire par service de voiture (par exemple, seules les applications système peuvent contrôler le CVC car elles nécessitent une autorisation système accordée uniquement aux applications système).