AAOS 시간 소스 구성

이 기능을 사용하면 Android Automotive 운영체제(AAOS) 또는 차량 시스템 중 어느 곳에서 Android로 시간을 동기화할 지 파트너가 선택할 수 있습니다. 고품질 구현을 위해 아래 설명된 새로운 VHAL 속성 2가지 중 하나를 사용하도록 AAOS를 구성하여 값을 효과적으로 전파할 수 있습니다. 다음 2가지를 사용합니다.

  • ANDROID_EPOCH_TIME은 Android를 시간 정보 소스로 사용합니다. VHAL은 Android에서 다른 차량 시스템(예: 전자 제어 장치(ECU), 차체 제어 모듈(BCM))으로 시간 변경사항을 전달하는 이 쓰기 전용 속성을 지원합니다.
  • EXTERNAL_CAR_TIME은 Android를 시간 정보 소스로 사용하지 않습니다. 이런 경우 VHAL은 다른 차량 시스템(예: ECU, BCM)에서 Android로 시간 변경사항을 전달하는 읽기 전용 EXTERNAL_CAR_TIME 속성을 지원합니다.

AAOS는 Android 내에서 다양한 시간 소스의 우선순위를 지정할 수 있는 구성 가능한 TimeDetectorStrategy도 제공합니다.

시간 정보 소스인 Android

Android가 시간 소스로 사용될 때 OEM은 다른 자동차 시스템(ECU, BCM 등)을 Android 시간과 동기화할 수 있습니다.

이렇게 하려면 VHAL 구현이 쓰기 전용 속성 ANDROID_EPOCH_TIME 속성을 지원해야 합니다. Android는 부팅할 때와 Android의 시간 소스가 변경될 때마다 시스템 시간을 읽어 속성 업데이트를 게시합니다.

시간 정보 소스가 아닌 Android

Android가 시간 소스로 사용되지 않을 때는 Android 시간이 시간 정보 소스가 되도록 동기화할 수 있습니다(예: ECU나 BCM 사용). 이런 경우 VHAL 구현은 읽기 전용 속성 EXTERNAL_CAR_TIME을 지원하고 시간 소스가 시계를 변경하거나 재보정할 때마다 이 속성 업데이트를 게시해야 합니다.

또한 OEM은 다음을 확인해야 합니다.

  • config_autoTimeSourcesPriority 값이 core/res/res/values/config.xml에 포함됩니다.
  • CarServices 오버레이 구성 packages/services/Car/service/res/values/config.xmlconfig_enableExternalCarTimeToExternalTimeSuggestion 속성이 true로 설정됩니다.
  • external 시간이 TimeDetectorStrategy 구성에서 적절한 우선순위를 가집니다. 자세한 내용은 GNSS 시간 감지를 참고하세요. 예:
    <!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.
    See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
         <string-array name="config_autoTimeSourcesPriority">
            <item>external</item>
            <item>gnss</item>
            <item>network</item>
            <item>telephony</item>
        </string-array>
    

Android 내부 구현 세부정보

다음 흐름은 ANDROID_EPOCH_TIME VHAL 속성이 지원될 때 실행됩니다.

  1. CarServices의 TimeHalService가 Android 시스템에서 Intent.ACTION_TIME_CHANGED의 브로드캐스트를 수신합니다.
  2. TimeHalService가 VHAL 속성 ANDROID_EPOCH_TIME 업데이트를 게시합니다.
  3. VHAL은 수신한 시간 값을 다양한 ECU 또는 BCM 장치에 전파할 수 있습니다.

다음 흐름은 EXTERNAL_CAR_TIME VHAL 속성이 지원될 때 실행됩니다.

  1. VHAL은 EXTERNAL_CAR_TIME 속성을 업데이트합니다.
  2. CarServices의 TimeHalService는 구독을 통해 속성을 읽습니다.
  3. TimeHalServiceExternalTimeSuggestion을 만들어 TimeManager로 전송합니다.
  4. TimeManager는 이 추천을 TimeDetectorService로 전달합니다.
  5. TimeDetectorServiceTimeDetectorStrategy를 사용하여 새로운 시스템 시간을 선택합니다.