汽車

Android 車輛 HAL 圖標

許多汽車子系統通過各種總線拓撲相互連接並與車載信息娛樂 (IVI) 系統互連。確切的總線類型和協議因製造商而異(甚至在同一品牌的不同車型之間);示例包括控制器局域網 (CAN) 總線、本地互連網絡 (LIN) 總線、面向媒體的系統傳輸 (MOST) 以及汽車級以太網和 TCP/IP 網絡,例如 BroadR-Reach。

Android Automotive 硬件抽象層 (HAL) 為 Android 框架提供了一致的接口,與物理傳輸層無關。此車輛 HAL 是用於開發 Android Automotive 實現的接口。

系統集成商可以通過將功能特定的平台 HAL 接口(例如 HVAC)與技術特定的網絡接口(例如 CAN 總線)連接起來來實現車輛 HAL 模塊。典型的實現可能包括一個專用的微控制器單元 (MCU),該微控制器單元 (MCU) 運行專有的實時操作系統 (RTOS),用於 CAN 總線訪問或類似的,它可以通過串行鏈路連接到運行 Android Automotive 的 CPU。除了專用 MCU,還可以將總線訪問實現為虛擬化 CPU。只要實現滿足車輛 HAL 的接口要求,每個合作夥伴都可以選擇適合硬件的架構。

建築學

車輛 HAL 是汽車與車載網絡服務之間的接口定義:

Android車載HAL架構

圖 1 。 Vehicle HAL 和 Android 汽車架構

  • 汽車 API 。包含 API,包括CarSensorManager 。有關支持的 API 的詳細信息,請參閱/platform/packages/services/Car/car-lib
  • 汽車服務。位於/platform/packages/services/Car/
  • 車輛 HAL 。定義 OEM 可以實現的車輛屬性的接口。包含屬性元數據(例如,車輛屬性是否為 int 以及允許哪些更改模式)。位於hardware/libhardware/include/hardware/vehicle.h 。有關基本參考實現,請參閱hardware/libhardware/modules/vehicle/

有關詳細信息,請參閱車輛屬性

安全

車輛 HAL 在訪問數據時支持以下安全級別:

  • 經許可可訪問應用程序(通過汽車服務)。
  • 未經許可可進入(通過汽車服務)。

車輛屬性的直接訪問僅允許選擇具有帶有 selinux 訪問保護的車輛網絡的系統組件。大多數應用程序通過汽車服務進行額外的把關(例如,只有系統應用程序可以控制 HVAC,因為它需要僅授予系統應用程序的系統權限)。