SDV позволяет выполнять A/B-обновления для пользовательского раздела /oem_ab . Используйте библиотеку OEM AB Updater для запуска и отката обновлений для пользовательского раздела /oem_ab , с возможностями, аналогичными системным A/B-обновлениям Android .
Пример кода реализации библиотеки OEM AB Updater можно найти в system/software_defined_vehicle/samples/oem_partition_update_client .
В этом руководстве описывается, как использовать библиотеку OEM AB Updater и интегрировать ее с вашей собственной реализацией службы обновления. Предполагается, что вы используете 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-aosp_current-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
Запустите новую виртуальную машину
После проверки правильности сопоставления блочных устройств создайте новую виртуальную машину с тремя пользовательскими образами:
cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"
Используйте библиотеку OEM AB Updater в новом сервисе.
Чтобы использовать библиотеку в другом сервисе:
- Импортируйте крейт
sdv_oem_updater::OemUpdaterкак показано вsystem/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs.
. Create a new policy similar to the SELinux policies defined in device/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te.