SDV umożliwia aktualizacje A/B niestandardowej partycji /oem_ab. Użyj biblioteki OEM AB Updater, aby wywoływać i wycofywać zmiany aktualizacji niestandardowej /oem_ab
partycji, z funkcjami podobnymi do aktualizacji systemu Android A/B.
Przykładowy kod implementacji biblioteki OEM AB Updater znajdziesz w system/software_defined_vehicle/samples/oem_partition_update_client.
W tym przewodniku opisujemy, jak używać biblioteki OEM AB Updater i integrować ją z własną implementacją usługi aktualizacji. W tym przewodniku przyjęto założenie, że do tworzenia i testowania zmian używasz narzędzia Cuttlefish.
Lokalizacja biblioteki
Biblioteka OEM AB Updater znajduje się w katalogu system/software_defined_vehicle/platform/oem.
Tworzenie wymaganych obrazów niestandardowych
Biblioteka OEM AB Updater wymaga kilku niestandardowych obrazów. Te obrazy są zdefiniowane w device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk i device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.
Wymagane obrazy niestandardowe zdefiniowane w oem_ab.mk i oem_ab_metadata.mk są tworzone podczas kompilacji elementu docelowego. Na przykład kompilacja sdv_core_cf tworzy obrazy partycji:
source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m
Określanie niestandardowych urządzeń blokujących
Sprawdź, czy w przypadku urządzenia docelowego Cuttlefish lunch ustawiono BOARD_BOOTCONFIG, aby mapować urządzenia blokowe na odpowiednią właściwość bootconfig. Przykład znajdziesz w artykule 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
Uruchamianie nowej maszyny wirtualnej
Po sprawdzeniu, czy urządzenia blokowe są zamapowane, utwórz nową maszynę wirtualną z 3 obrazami niestandardowymi:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
Używanie biblioteki OEM AB Updater w nowej usłudze
Aby użyć biblioteki w innej usłudze:
- Zaimportuj skrzynkę
sdv_oem_updater::OemUpdaterzgodnie z instrukcjami podanymi wsystem/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`.