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 :
- Importez le crate
sdv_oem_updater::OemUpdatercomme indiqué danssystem/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`.