SDV를 사용하면 커스텀 /oem_ab 파티션의 A/B 업데이트를 사용 설정할 수 있습니다. OEM AB
Updater 라이브러리를 사용하여 Android 시스템 A/B 업데이트와 유사한 기능으로 커스텀 /oem_ab
파티션의 업데이트를 트리거하고 롤백합니다.
system/software_defined_vehicle/samples/oem_partition_update_client에서 OEM AB Updater 라이브러리 구현의 샘플 코드를 참고하세요.
이 가이드에서는 OEM AB Updater 라이브러리를 사용하고 자체 Updater Service 구현과 통합하는 방법을 설명합니다. 이 가이드에서는 Cuttlefish를 사용하여 변경사항을 빌드하고 테스트한다고 가정합니다.
라이브러리 위치
OEM AB Updater 라이브러리는 system/software_defined_vehicle/platform/oem 디렉터리에 있습니다.
필요한 커스텀 이미지 빌드
OEM AB Updater 라이브러리에는 여러 커스텀 이미지가 필요합니다. 이러한 이미지는 device/google/sdv/sdv_core_base/oem_ab/oem_ab.mk 및 device/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk에 정의되어 있습니다.
oem_ab.mk 및 oem_ab_metadata.mk에 정의된 필수 커스텀 이미지는 타겟이 빌드될 때 생성됩니다. 예를 들어 sdv_core_cf를 빌드하면 다음과 같은 파티션 이미지가 생성됩니다.
source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m
커스텀 블록 기기 지정
Cuttlefish lunch 타겟이 BOARD_BOOTCONFIG를 설정하여 블록 기기를 상응하는 bootconfig 속성에 매핑하는지 확인합니다. 예를 보려면 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
새 VM 시작
블록 기기가 매핑되었는지 확인한 후 세 개의 커스텀 이미지로 새 VM을 만듭니다.
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
새 서비스에서 OEM AB Updater 라이브러리 사용
다른 서비스에서 라이브러리를 사용하려면 다음 단계를 따르세요.
system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs에 설명된 대로sdv_oem_updater::OemUpdater크레이트를 가져옵니다.
. Create a new.tepolicy similar to the SELinux policies defined indevice/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te`에 정의된 SELinux 정책과 유사한 새`.te`정책을 만듭니다.