Mises à jour des partitions AB pour les OEM

SDV permet les mises à jour A/B pour la partition /oem_ab personnalisée. Utilisez la bibliothèque OEM AB Updater pour déclencher et effectuer un rollback des mises à jour de la partition /oem_ab personnalisée, avec des fonctionnalités similaires aux mises à jour A/B du système Android.

Consultez l'exemple de code pour une implémentation de la bibliothèque OEM AB Updater dans system/software_defined_vehicle/samples/oem_partition_update_client.

Ce guide explique comment utiliser la bibliothèque OEM AB Updater et l'intégrer à votre propre implémentation du service Updater. Ce guide suppose que vous utilisez Cuttlefish pour compiler et tester vos modifications.

Emplacement de la bibliothèque

La bibliothèque OEM AB Updater se trouve dans le répertoire system/software_defined_vehicle/platform/oem.

Créer les images personnalisées requises

La bibliothèque OEM AB Updater nécessite plusieurs images personnalisées. Ces images sont définies dans device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk et device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.

Les images personnalisées requises définies dans oem_ab.mk et oem_ab_metadata.mk sont créées lorsque la cible est compilée. Par exemple, la compilation de sdv_core_cf crée les images de partition suivantes :

source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m

Spécifier des appareils de stockage en mode bloc personnalisés

Vérifiez que votre cible Cuttlefish lunch définit BOARD_BOOTCONFIG pour mapper les périphériques de bloc à la propriété bootconfig correspondante. Pour obtenir un exemple, consultez 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

Démarrer une VM

Après avoir vérifié que les périphériques de bloc sont mappés, créez une VM avec les trois images personnalisées :

cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"

Utiliser la bibliothèque OEM AB Updater dans un nouveau service

Pour utiliser la bibliothèque dans un autre service :

  1. Importez le crate sdv_oem_updater::OemUpdater comme indiqué dans system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs.

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