SDV consente gli aggiornamenti A/B per la partizione /oem_ab personalizzata. Utilizza la libreria OEM AB Updater per attivare e ripristinare gli aggiornamenti per la partizione /oem_ab personalizzata, con funzionalità simili agli aggiornamenti A/B del sistema Android.
Consulta il codice campione per un'implementazione della libreria OEM AB Updater in
system/software_defined_vehicle/samples/oem_partition_update_client.
La guida descrive come utilizzare la libreria OEM AB Updater e integrarla con la tua implementazione del servizio di aggiornamento. Questa guida presuppone che tu stia utilizzando Cuttlefish per creare e testare le modifiche.
Posizione della biblioteca
La libreria OEM AB Updater si trova nella
directory system/software_defined_vehicle/platform/oem.
Crea le immagini personalizzate richieste
La libreria OEM AB Updater richiede diverse immagini personalizzate. Queste
immagini sono definite in device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk
e device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.
Le immagini personalizzate richieste definite in oem_ab.mk e oem_ab_metadata.mk vengono
create quando viene creato il target. Ad esempio, la build sdv_core_cf crea
le immagini della partizione:
source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m
Specificare i dispositivi di blocco personalizzati
Verifica che la destinazione Cuttlefish lunch imposti BOARD_BOOTCONFIG in modo da mappare
i dispositivi a blocchi alla proprietà bootconfig corrispondente. Ad esempio, vedi
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
Avvia una nuova VM
Dopo aver verificato che i dispositivi a blocchi siano mappati, crea una nuova VM con le tre immagini personalizzate:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
Utilizzare la libreria OEM AB Updater in un nuovo servizio
Per utilizzare la libreria in un altro servizio:
- Importa la crate
sdv_oem_updater::OemUpdatercome mostrato insystem/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`.