Actualizaciones de particiones AB para OEM

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:

  1. Importa la caja sdv_oem_updater::OemUpdater como se muestra en system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs.

  2. Crea una nueva política de .te similar a las políticas de SELinux definidas en device/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te.