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:
- Impor crate
sdv_oem_updater::OemUpdaterseperti yang ditunjukkan disystem/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`.