Actualizaciones de particiones AB para OEM

SDV habilita las actualizaciones A/B para la partición /oem_ab personalizada. Usa la biblioteca del actualizador A/B del OEM para activar y revertir actualizaciones de la partición /oem_ab personalizada, con capacidades similares a las de las actualizaciones A/B del sistema Android.

Consulta el código de muestra para una implementación de la biblioteca del actualizador de AB del OEM en system/software_defined_vehicle/samples/oem_partition_update_client.

En la guía, se describe cómo usar la biblioteca OEM AB Updater y cómo integrarla en tu propia implementación del servicio de actualización. En esta guía, se supone que usas Cuttlefish para compilar y probar tus cambios.

Ubicación de la biblioteca

La biblioteca del actualizador de AB del OEM se encuentra en el directorio system/software_defined_vehicle/platform/oem.

Compila las imágenes personalizadas requeridas

La biblioteca OEM AB Updater 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, la compilación de sdv_core_cf crea las imágenes de partición:

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

Cómo especificar dispositivos de almacenamiento en bloque personalizados

Verifica que tu objetivo lunch de Cuttlefish establezca BOARD_BOOTCONFIG para asignar los dispositivos de bloque 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

Cómo iniciar una VM nueva

Después de verificar que los dispositivos de bloqueo 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 del actualizador de AB del OEM en un servicio nuevo

Para usar la biblioteca en otro servicio, haz lo siguiente:

  1. Importa el crate sdv_oem_updater::OemUpdater como se muestra en 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`.