Settore automobilistico

Icona HAL del veicolo Android

Molti sottosistemi per auto si interconnettono tra loro e con il sistema di infotainment a bordo del veicolo (IVI) tramite varie topologie di bus. Il tipo esatto di autobus e i protocolli variano ampiamente tra i produttori (e anche tra diversi modelli di veicoli della stessa marca); esempi includono bus Controller Area Network (CAN), bus LIN (Local Interconnect Network), MOST (Media Oriented Systems Transport), nonché reti Ethernet e TCP/IP di livello automobilistico come BroadR-Reach.

Il livello di astrazione hardware (HAL) di Android Automotive fornisce un'interfaccia coerente al framework Android indipendentemente dal livello di trasporto fisico. Questo veicolo HAL è l'interfaccia per lo sviluppo di implementazioni Android Automotive.

Gli integratori di sistemi possono implementare un modulo HAL per veicoli collegando interfacce HAL della piattaforma specifica per funzione (ad es. HVAC) con interfacce di rete specifiche per la tecnologia (ad es. bus CAN). Le implementazioni tipiche possono includere un'unità microcontrollore (MCU) dedicata che esegue un sistema operativo in tempo reale (RTOS) proprietario per l'accesso al bus CAN o simile, che può essere collegato tramite un collegamento seriale alla CPU che esegue Android Automotive. Invece di un MCU dedicato, potrebbe anche essere possibile implementare l'accesso al bus come CPU virtualizzata. Spetta a ciascun partner scegliere l'architettura adatta all'hardware, purché l'implementazione soddisfi i requisiti di interfaccia per il veicolo HAL.

Architettura

L'HAL del veicolo è la definizione dell'interfaccia tra l'auto e il servizio di rete del veicolo:

Architettura HAL per veicoli Android

Figura 1 . Veicolo HAL e architettura automobilistica Android

  • API per auto . Contiene le API, incluso CarSensorManager . Per i dettagli sulle API supportate, vedere /platform/packages/services/Car/car-lib .
  • Servizio auto . Situato in /platform/packages/services/Car/ .
  • Veicolo HAL . Interfaccia che definisce le proprietà del veicolo che gli OEM possono implementare. Contiene i metadati delle proprietà (ad esempio, se la proprietà del veicolo è un int e quali modalità di modifica sono consentite). Si trova in hardware/libhardware/include/hardware/vehicle.h . Per un'implementazione di riferimento di base, fare riferimento a hardware/libhardware/modules/vehicle/ .

Per maggiori dettagli, vedere Proprietà del veicolo .

Sicurezza

Il veicolo HAL supporta questi livelli di sicurezza durante l'accesso ai dati:

  • Accessibile all'app con autorizzazione (tramite servizio auto).
  • Accessibile senza autorizzazione (tramite servizio auto).

L'accesso diretto alle proprietà del veicolo è consentito solo a componenti di sistema selezionati con rete del veicolo con protezione di accesso selinux. La maggior parte delle applicazioni passa attraverso un servizio di gatekeeping aggiuntivo tramite il servizio auto (ad esempio, solo le applicazioni di sistema possono controllare l'HVAC poiché richiede l'autorizzazione di sistema concessa solo alle app di sistema).

, Icona HAL del veicolo Android

Molti sottosistemi per auto si interconnettono tra loro e con il sistema di infotainment a bordo del veicolo (IVI) tramite varie topologie di bus. Il tipo esatto di autobus e i protocolli variano ampiamente tra i produttori (e anche tra diversi modelli di veicoli della stessa marca); esempi includono bus Controller Area Network (CAN), bus LIN (Local Interconnect Network), MOST (Media Oriented Systems Transport), nonché reti Ethernet e TCP/IP di livello automobilistico come BroadR-Reach.

Il livello di astrazione hardware (HAL) di Android Automotive fornisce un'interfaccia coerente al framework Android indipendentemente dal livello di trasporto fisico. Questo veicolo HAL è l'interfaccia per lo sviluppo di implementazioni Android Automotive.

Gli integratori di sistemi possono implementare un modulo HAL per veicoli collegando interfacce HAL della piattaforma specifica per funzione (ad es. HVAC) con interfacce di rete specifiche per la tecnologia (ad es. bus CAN). Le implementazioni tipiche possono includere un'unità microcontrollore (MCU) dedicata che esegue un sistema operativo in tempo reale (RTOS) proprietario per l'accesso al bus CAN o simile, che può essere collegato tramite un collegamento seriale alla CPU che esegue Android Automotive. Invece di un MCU dedicato, potrebbe anche essere possibile implementare l'accesso al bus come CPU virtualizzata. Spetta a ciascun partner scegliere l'architettura adatta all'hardware, purché l'implementazione soddisfi i requisiti di interfaccia per il veicolo HAL.

Architettura

L'HAL del veicolo è la definizione dell'interfaccia tra l'auto e il servizio di rete del veicolo:

Architettura HAL per veicoli Android

Figura 1 . Veicolo HAL e architettura automobilistica Android

  • API per auto . Contiene le API, incluso CarSensorManager . Per i dettagli sulle API supportate, vedere /platform/packages/services/Car/car-lib .
  • Servizio auto . Situato in /platform/packages/services/Car/ .
  • Veicolo HAL . Interfaccia che definisce le proprietà del veicolo che gli OEM possono implementare. Contiene i metadati delle proprietà (ad esempio, se la proprietà del veicolo è un int e quali modalità di modifica sono consentite). Si trova in hardware/libhardware/include/hardware/vehicle.h . Per un'implementazione di riferimento di base, fare riferimento a hardware/libhardware/modules/vehicle/ .

Per maggiori dettagli, vedere Proprietà del veicolo .

Sicurezza

Il veicolo HAL supporta questi livelli di sicurezza durante l'accesso ai dati:

  • Accessibile all'app con autorizzazione (tramite servizio auto).
  • Accessibile senza autorizzazione (tramite servizio auto).

L'accesso diretto alle proprietà del veicolo è consentito solo a componenti di sistema selezionati con rete del veicolo con protezione di accesso selinux. La maggior parte delle applicazioni passa attraverso un servizio di gatekeeping aggiuntivo tramite il servizio auto (ad esempio, solo le applicazioni di sistema possono controllare l'HVAC poiché richiede l'autorizzazione di sistema concessa solo alle app di sistema).