SDV habilita las actualizaciones A/B para la partición /oem_ab personalizada. Usa la biblioteca de OEM AB Updater para activar y revertir las actualizaciones de la partición /oem_ab personalizada, con funciones similares a las actualizaciones A/B del sistema Android.
Consulta el código de muestra para ver una implementación de la biblioteca de AB Updater de OEM en system/software_defined_vehicle/samples/oem_partition_update_client.
En la guía, se describe cómo usar la biblioteca de OEM AB Updater y cómo integrarla en tu propia implementación del servicio de Updater. En esta guía, se supone que usas Cuttlefish para compilar y probar tus cambios.
Ubicación de la biblioteca
La biblioteca de OEM AB Updater se encuentra en el directorio system/software_defined_vehicle/platform/oem.
Compila las imágenes personalizadas requeridas
La biblioteca de AB Updater del OEM requiere varias imágenes personalizadas. Estas imágenes se definen en device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk y device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.
Las imágenes personalizadas requeridas definidas en oem_ab.mk y oem_ab_metadata.mk se
crean cuando se compila el destino. Por ejemplo, compilar sdv_core_cf crea las imágenes de partición:
source build/envsetup.sh
lunch sdv_core_cf-aosp_current-userdebug
m
Especifica dispositivos de almacenamiento en bloques personalizados
Verifica que el destino lunch de Cuttlefish establezca BOARD_BOOTCONFIG para asignar los dispositivos de almacenamiento en bloques a la propiedad bootconfig correspondiente. Por ejemplo, consulta
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
Inicia una VM nueva
Después de verificar que los dispositivos de almacenamiento en bloques estén asignados, crea una VM nueva con las tres imágenes personalizadas:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
Usa la biblioteca de OEM AB Updater en un servicio nuevo
Para usar la biblioteca en otro servicio, haz lo siguiente:
Importa la caja
sdv_oem_updater::OemUpdatercomo se muestra ensystem/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs.Crea una nueva política de
.tesimilar a las políticas de SELinux definidas endevice/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te.