設定 AAOS 時間來源

這項功能可讓合作夥伴選擇時間同步方式,不論是從 Android Automotive 作業系統 (AAOS) 從車輛系統到 Android。為確保導入品質,您可以將 AAOS 設為使用下方兩個新 VHAL 屬性中的其中一個,有效地傳播值。您可以使用下列功能:

  • ANDROID_EPOCH_TIME 使用 Android 做為時間的可靠資料來源。VHAL 支援這項只讀屬性,可將時間變更從 Android 傳送至其他車輛系統,例如電子控制單元 (ECU) 和車身控制模組 (BCM)。
  • EXTERNAL_CAR_TIME 不使用 Android 做為時間的真相來源。在這種情況下,VHAL 支援唯讀 EXTERNAL_CAR_TIME 屬性,可將其他車輛系統 (例如 ECU 和 BCM) 的時間變更傳送至 Android。

AAOS 也提供可設定的 TimeDetectorStrategy,協助您為 Android 中的不同時間來源排定優先順序。

Android 是時間的可靠來源

使用 Android 做為時間來源時,原始設備製造商 (OEM) 可以將其他車輛系統 (包括 ECU 和 BCM) 與 Android 時間同步。

為此,VHAL 實作必須支援只寫屬性 ANDROID_EPOCH_TIME。Android 會在啟動時和 Android 中的時間來源變更時,透過讀取系統時間來發布屬性更新。

Android 並非時間的可靠來源

如果 Android 不是時間來源,您可以將 Android 時間同步處理,做為可靠的時間來源 (例如使用 ECU 或 BCM)。在這種情況下,VHAL 實作項目必須支援唯讀屬性 EXTERNAL_CAR_TIME,並在時間來源變更或重新校正時,發布此屬性的更新。

原始設備製造商也必須確保:

  • config_autoTimeSourcesPriority 值包含在 core/res/res/values/config.xml 中。
  • CarServices 重疊設定 packages/services/Car/service/res/values/config.xml 中的 config_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. TimeHalService (在 CarServices 中) 會收到 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. TimeHalService (在 CarServices 中) 會透過訂閱讀取屬性。
  3. TimeHalService 會建立並傳送 ExternalTimeSuggestionTimeManager
  4. TimeManager 將建議轉寄至 TimeDetectorService
  5. TimeDetectorService 會使用 TimeDetectorStrategy 選擇新的系統時間。