Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

자동차

Android 차량 HAL 아이콘

많은 차량 하위 시스템이 다양한 버스 토폴로지를 통해 서로 상호 연결되어 있으며 IVI(차량용 인포테인먼트 시스템) 시스템과 연결되어 있습니다. 정확한 버스 유형과 프로토콜은 제조업체마다 다르며 심지어 동일한 브랜드의 다른 차량 모델 간에도 차이가 있습니다. 예를 들어 CAN(Controller Area Network) 버스, LIN(Local Interconnect Network) 버스, MOST(Media Oriented Systems Transport), BroadR-Reach와 같은 차량용 이더넷 및 TCP/IP 네트워크가 있습니다.

Android Automotive HAL(하드웨어 추상화 계층)은 물리적 전송 레이어와 상관없이 Android 프레임워크에 일관된 인터페이스를 제공합니다. 이 차량 HAL은 Android Automotive 구현을 개발하기 위한 인터페이스입니다.

시스템 통합자는 기능별 플랫폼 HAL 인터페이스(예: HVAC)를 기술 전용 네트워크 인터페이스(예: CAN 버스)와 연결하여 차량 HAL 모듈을 구현할 수 있습니다. 일반적인 구현에는 CAN 버스 액세스 또는 그와 유사한 용도로 RTOS(proprietary real-time operating system)를 실행하는 전용 MCU(Microcontroller Unit)를 포함하고 있을 수 있으며, MCU는 직렬 링크를 통해 Android Automotive를 실행하는 CPU에 연결될 수 있습니다. 전용 MCU 대신 버스 액세스를 가상화된 CPU로 구현할 수도 있습니다. 구현이 차량 HAL에 대한 인터페이스 요구사항을 충족하는 경우 하드웨어에 적합한 아키텍처를 선택하는 것은 각 파트너의 책임입니다.

아키텍처

차량 HAL은 자동차와 차량 네트워크 서비스 간의 인터페이스 정의입니다.

Android 차량 HAL 아키텍처

그림 1. 자동차 HAL 및 Android 자동차 아키텍처

  • 자동차 API. CarHvacManager 및 CarSensorManager 등과 같은 API를 포함합니다. 지원되는 API에 대한 자세한 내용은 /platform/packages/services/Car/car-lib를 참조하세요.
  • CarService. /platform/packages/services/Car/에 있습니다.
  • VehicleNetworkService. 보안이 기본 제공되는 차량 HAL을 제어합니다. 액세스는 시스템 구성요소로만 제한됩니다. 제3자 앱과 같은 시스템 구성요소가 아닌 구성요소는 대신 자동차 API를 사용해야 합니다. OEM은 vns_policy.xmlvendor_vns_policy.xml을 사용하여 액세스를 제어할 수 있습니다. 라이브러리에서 /platform/packages/services/Car/vehicle_network_service/에 있는 차량 네트워크에 액세스하려면 /platform/packages/services/Car/libvehiclenetwork/를 참조하세요.
  • 차량 HAL. OEM이 구현할 수 있는 차량 속성을 정의하는 인터페이스입니다. 속성 메타데이터를 포함합니다(예: 차량 속성이 int인지 여부 및 허용되는 변경 모드). hardware/libhardware/include/hardware/vehicle.h에 있습니다. 기본 참조 구현은 hardware/libhardware/modules/vehicle/을 참조하세요.

자세한 내용은 차량 속성을 참조하세요.

보안

차량 HAL은 데이터 액세스를 위한 세 가지 보안 수준을 지원합니다.

  • 시스템만(vns_policy.xml로 제어됨)
  • 권한이 있는 앱에 액세스할 수 있음(Car Service를 통해)
  • 권한 없이 액세스 가능(Car Service를 통해)

선택된 시스템 구성요소만 게이트키퍼 역할을 하는 차량 네트워크 서비스를 통해 차량 속성에 직접 액세스할 수 있습니다. 대부분의 애플리케이션은 Car Service의 추가 게이트키핑을 거칩니다. 예를 들어 HVAC는 시스템 앱에만 부여된 시스템 권한을 필요로 하기 때문에 시스템 애플리케이션만 HVAC를 제어할 수 있습니다.

유효성 검사

AOSP에는 개발에 사용할 수 있는 다음 테스트 리소스가 포함되어 있습니다.

  • hardware/libhardware/tests/vehicle/vehicle-hal-tool.c
    차량 HAL을 로드하고 간단한 작업을 수행하는 명령줄 네이티브 도구. 이 도구는 시스템을 개발 초기 단계에서 실행하는 데 유용합니다.
  • packages/services/Car/tests/carservice_test/
    모의 차량 HAL 속성과 함께 Car Service 테스트가 포함되어 있습니다. 각 속성마다 예상 동작이 테스트에서 구현됩니다. 따라서 예상 동작을 이해하는 데 좋은 시작점이 될 수 있습니다.
  • hardware/libhardware/modules/vehicle/
    기본 참조 구현입니다.