O SDV permite atualizações A/B para a partição /oem_ab personalizada. Use a biblioteca do atualizador
AB do OEM para acionar e reverter atualizações da partição /oem_ab
personalizada, com recursos semelhantes às atualizações A/B do sistema Android.
Confira o exemplo de código para uma implementação da biblioteca do atualizador AB do OEM em
system/software_defined_vehicle/samples/oem_partition_update_client.
O guia descreve como usar a biblioteca do OEM AB Updater e integrá-la à sua própria implementação do serviço de atualização. Neste guia, pressupomos que você esteja usando o Cuttlefish para criar e testar suas mudanças.
Local da biblioteca
A biblioteca do atualizador AB do OEM está no
diretório system/software_defined_vehicle/platform/oem.
Criar as imagens personalizadas necessárias
A biblioteca do atualizador AB do OEM requer várias imagens personalizadas. Essas
imagens são definidas em device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk
e device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.
As imagens personalizadas necessárias definidas em oem_ab.mk e oem_ab_metadata.mk são
criadas quando o destino é criado. Por exemplo, a criação de sdv_core_cf gera
as imagens de partição:
source build/envsetup.sh
lunch sdv_core_cf-aosp_current-userdebug
m
Especificar dispositivos de transferência por blocos personalizados
Verifique se o destino lunch do Cuttlefish define BOARD_BOOTCONFIG para mapear
os dispositivos em bloco para a propriedade bootconfig correspondente. Por exemplo, consulte
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
Iniciar uma nova VM
Depois de verificar se os dispositivos de transferência por blocos estão mapeados, crie uma VM com as três imagens personalizadas:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
Usar a biblioteca do atualizador AB do OEM em um novo serviço
Para usar a biblioteca em outro serviço:
Importe o crate
sdv_oem_updater::OemUpdaterconforme demonstrado emsystem/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs.Crie uma nova política
.tesemelhante às políticas do SELinux definidas emdevice/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te.