Update partisi AB OEM

SDV memungkinkan update A/B untuk partisi /oem_ab kustom. Gunakan library OEM AB Updater untuk memicu dan meng-roll back update untuk partisi /oem_abkustom, dengan kemampuan yang serupa dengan update A/B sistem Android.

Lihat kode contoh untuk penerapan library OEM AB Updater di system/software_defined_vehicle/samples/oem_partition_update_client.

Panduan ini menjelaskan cara menggunakan library OEM AB Updater dan mengintegrasikannya dengan penerapan Layanan Updater Anda sendiri. Panduan ini mengasumsikan bahwa Anda menggunakan Cuttlefish untuk membuat dan menguji perubahan.

Lokasi perpustakaan

Library OEM AB Updater berada di direktori system/software_defined_vehicle/platform/oem.

Bangun image kustom yang diperlukan

Library OEM AB Updater memerlukan beberapa image kustom. Gambar ini ditentukan di device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk dan device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.

Image kustom yang diperlukan yang ditentukan dalam oem_ab.mk dan oem_ab_metadata.mk dibuat saat target dibangun. Misalnya, membangun sdv_core_cf akan membuat image partisi:

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

Menentukan perangkat blok kustom

Pastikan target Cuttlefish lunch Anda menetapkan BOARD_BOOTCONFIG untuk memetakan perangkat blok ke properti bootconfig yang sesuai. Misalnya, lihat 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

Mulai VM baru

Setelah memverifikasi bahwa perangkat blok dipetakan, buat VM baru dengan tiga image kustom:

cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"

Menggunakan library OEM AB Updater di layanan baru

Untuk menggunakan library di layanan lain:

  1. Impor crate sdv_oem_updater::OemUpdater seperti yang ditunjukkan di 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`.