SDV ermöglicht A/B-Updates für die benutzerdefinierte /oem_ab-Partition. Verwenden Sie die OEM AB-Updater-Bibliothek, um Updates für die benutzerdefinierte /oem_ab-Partition auszulösen und ein Rollback durchzuführen. Die Funktionen sind ähnlich wie bei A/B-Updates für das Android-System.
Beispielcode für eine OEM AB Updater-Bibliotheksimplementierung finden Sie unter system/software_defined_vehicle/samples/oem_partition_update_client.
In diesem Leitfaden wird beschrieben, wie Sie die OEM AB Updater-Bibliothek verwenden und in Ihre eigene Updater-Dienstimplementierung einbinden. In dieser Anleitung wird davon ausgegangen, dass Sie Cuttlefish verwenden, um Ihre Änderungen zu erstellen und zu testen.
Speicherort der Bibliothek
Die OEM AB Updater-Bibliothek befindet sich im Verzeichnis system/software_defined_vehicle/platform/oem.
Erforderliche benutzerdefinierte Images erstellen
Für die OEM AB Updater-Bibliothek sind mehrere benutzerdefinierte Images erforderlich. Diese Bilder sind in device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk und device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk definiert.
Die erforderlichen benutzerdefinierten Images, die in oem_ab.mk und oem_ab_metadata.mk definiert sind, werden beim Erstellen des Ziels erstellt. Wenn Sie beispielsweise sdv_core_cf erstellen, werden die folgenden Partitionsimages erstellt:
source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m
Benutzerdefinierte Blockgeräte angeben
Prüfen Sie, ob das Cuttlefish-Ziel lunch die BOARD_BOOTCONFIG so festlegt, dass die Blockgeräte der entsprechenden Bootconfig-Eigenschaft zugeordnet werden. Ein Beispiel finden Sie unter device/google/sdv/sdv_core_cf/BoardConfig.mk.
BOARD_BOOTCONFIG += \
androidboot.sdv.oem_slot_a_device=/dev/block/by-name/custom \
androidboot.sdv.oem_slot_b_device=/dev/block/by-name/custom_1
Neue VM starten
Nachdem Sie überprüft haben, ob die Blockgeräte zugeordnet sind, erstellen Sie eine neue VM mit den drei benutzerdefinierten Images:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
OEM AB Updater-Bibliothek in einem neuen Dienst verwenden
So verwenden Sie die Bibliothek in einem anderen Dienst:
- Importieren Sie das
sdv_oem_updater::OemUpdater-Crate, wie insystem/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rsbeschrieben.
. Create a new.tepolicy similar to the SELinux policies defined indevice/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te`.