Ab dem 27. März 2025 empfehlen wir, android-latest-release anstelle von aosp-main zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit dieser Funktion können Partner auswählen, wie die Zeit synchronisiert werden soll – entweder vom Android Automotive Operating System (AAOS) oder von Fahrzeugsystemen mit Android.
Für eine erfolgreiche Implementierung können Sie AAOS so konfigurieren, dass eine der beiden unten beschriebenen neuen VHAL-Properties verwendet wird, um die Werte effektiv zu übertragen. Verwendung:
ANDROID_EPOCH_TIME, um Android als Zeitquelle zu verwenden. Die VHAL unterstützt diese schreibgeschützte Eigenschaft, über die Zeitänderungen von Android an andere Fahrzeugsysteme wie die elektronischen Steuergeräte (ECU) und das Body Control Module (BCM) gesendet werden.
EXTERNAL_CAR_TIME, Android nicht als „Source of Truth“ für die Zeit zu verwenden. In diesem Fall unterstützt die VHAL die schreibgeschützte Property EXTERNAL_CAR_TIME, über die Zeitänderungen von anderen Fahrzeugsystemen (z. B. ECUs und BCMs) an Android gesendet werden.
AAOS bietet außerdem eine konfigurierbare TimeDetectorStrategy, mit der Sie verschiedene Zeitquellen in Android priorisieren können.
Android ist die „Source of Truth“ für die Zeit
Wenn Android als Zeitquelle verwendet wird, können OEMs andere Fahrzeugsysteme (einschließlich ECUs und BCMs) mit der Android-Zeit synchronisieren.
Dazu muss die VHAL-Implementierung die schreibgeschützte Property ANDROID_EPOCH_TIME unterstützen. Android veröffentlicht ein Update für die Property, indem die Systemzeit gelesen wird, sowohl beim Starten als auch jedes Mal, wenn die Zeitquelle in Android geändert wird.
Android ist nicht die primäre Zeitquelle
Wenn Android nicht als Zeitquelle verwendet wird, können Sie die Android-Zeit mit einer anderen Zeitquelle synchronisieren, z. B. mit einem Steuergerät oder dem BCM. In diesem Fall muss die VHAL-Implementierung die schreibgeschützte Property EXTERNAL_CAR_TIME unterstützen und Aktualisierungen für diese Property veröffentlichen, wenn sich die Zeitquelle ändert oder die Uhr neu kalibriert wird.
OEMs müssen außerdem Folgendes sicherstellen:
Die config_autoTimeSourcesPriority-Werte sind in core/res/res/values/config.xml enthalten.
Die Property config_enableExternalCarTimeToExternalTimeSuggestion in den packages/services/Car/service/res/values/config.xml-Overlay-Konfigurationen von CarServices ist auf true festgelegt.
Die external-Zeit hat in der TimeDetectorStrategy-Konfiguration die richtige Priorität. Weitere Informationen finden Sie unter GNSS-Zeiterkennung.
Beispiel:
<!-- 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>
Details zur internen Implementierung von Android
Wenn die VHAL-Eigenschaft ANDROID_EPOCH_TIME unterstützt wird, geschieht Folgendes:
TimeHalService (in CarServices) empfängt eine Übertragung vom Android-System für Intent.ACTION_TIME_CHANGED.
TimeHalService veröffentlicht ein Update für die VHAL-Property ANDROID_EPOCH_TIME.
Die VHAL kann den empfangenen Zeitwert an verschiedene ECUs und/oder BCM-Einheiten weitergeben.
Wenn die VHAL-Eigenschaft EXTERNAL_CAR_TIME unterstützt wird, geschieht Folgendes:
VHAL aktualisiert die Property EXTERNAL_CAR_TIME.
TimeHalService (in CarServices) liest das Attribut über ein Abo.
TimeHalService erstellt und sendet eine ExternalTimeSuggestion an TimeManager.
TimeManager leitet den Vorschlag an TimeDetectorService weiter.
TimeDetectorService verwendet TimeDetectorStrategy, um eine neue Systemzeit auszuwählen.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Configure AAOS time sources\n\nThis feature enables partners to choose how to synchronize time, whether from the Android\nAutomotive Operating System (AAOS) **or** from vehicular systems to Android.\nTo ensure quality implementations, you can configure AAOS to use one of the two new VHAL properties\ndescribed below to propagate the values effectively. Use:\n\n- `ANDROID_EPOCH_TIME` to **use** Android as the source of truth for time. The VHAL supports this *write-only* property, which communicates time changes from Android to other vehicular systems, such as the Electronic Control Units (ECU) and the Body Control Module (BCM).\n- `EXTERNAL_CAR_TIME` to **not use** Android as the source of truth for time. In this case, the VHAL supports the *read-only* `EXTERNAL_CAR_TIME` property, which communicates time changes from other vehicular systems (such as ECUs and BCM) to Android.\n\n| **Warning:** If you opt to support both properties (not recommended), the VHAL must **never** publish values to `EXTERNAL_CAR_TIME` that are dependent on `ANDROID_EPOCH_TIME`.\n\nAAOS also provides a configurable `TimeDetectorStrategy` to help you prioritize\ndifferent time sources within Android.\n\n### Android is the source of truth for time\n\nWhen Android is used as the source of time, OEMs can synchronize other car systems (including\nECUs and a BCM) with Android time.\n\nTo do so, the VHAL implementation must support the *write-only* property\n`ANDROID_EPOCH_TIME` property. Android publishes an update to the property by reading\nsystem time, both at boot time and whenever the time source in Android is changed.\n\n### Android is not the source of truth for time\n\nWhen Android is **not** used as the source of time, you can synchronize Android time\nto be the source of truth for time (for example, with an ECU or the BCM). In this case, the\nVHAL implementation must support the read-only property `EXTERNAL_CAR_TIME` and publish\nupdates to this property whenever the source of time changes or recalibrates the clock.\n\nOEMs must also ensure that:\n\n- The `config_autoTimeSourcesPriority` values are contained in `core/res/res/values/config.xml`.\n- The `config_enableExternalCarTimeToExternalTimeSuggestion` property in the CarServices overlay configs `packages/services/Car/service/res/values/config.xml` is set to `true`.\n- `external` time has the appropriate priority in the `TimeDetectorStrategy` configuration. To learn more, see [GNSS Time Detection](/devices/tech/connect/time/gnss-time-detection#implement). For example: \n\n ```scdoc\n \u003c!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.\n See com.android.server.timedetector.TimeDetectorStrategy for available sources. --\u003e\n \u003cstring-array name=\"config_autoTimeSourcesPriority\"\u003e\n \u003citem\u003eexternal\u003c/item\u003e\n \u003citem\u003egnss\u003c/item\u003e\n \u003citem\u003enetwork\u003c/item\u003e\n \u003citem\u003etelephony\u003c/item\u003e\n \u003c/string-array\u003e\n ```\n\n| The VHAL implementation must **not** publish updates for the natural progression of time.\n\nAndroid internal implementation details\n---------------------------------------\n\nThe following flow takes place when the `ANDROID_EPOCH_TIME` VHAL property is\nsupported:\n\n1. `TimeHalService` (in CarServices) receives a broadcast from the Android system for `Intent.ACTION_TIME_CHANGED`.\n2. `TimeHalService` publishes an update to the VHAL Property `ANDROID_EPOCH_TIME`.\n3. The VHAL can propagate the time value received to various ECUs and/or BCM units.\n\nThe following flow takes place when the `EXTERNAL_CAR_TIME` VHAL property is\nsupported:\n\n1. VHAL updates the `EXTERNAL_CAR_TIME` property.\n2. `TimeHalService` (in CarServices) reads the property through a subscription.\n3. `TimeHalService` creates and sends an `ExternalTimeSuggestion` to `TimeManager`.\n4. `TimeManager` forwards the suggestion to `TimeDetectorService`.\n5. `TimeDetectorService` uses `TimeDetectorStrategy` to choose a new system time."]]