AB-Partitionsupdates für OEMs

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:

  1. Importieren Sie das sdv_oem_updater::OemUpdater-Crate, wie in system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs beschrieben.

. Create a new.tepolicy similar to the SELinux policies defined indevice/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te`.