به‌روزرسانی‌های پارتیشن OEM AB

SDV به‌روزرسانی‌های A/B را برای پارتیشن سفارشی /oem_ab فعال می‌کند. از کتابخانه OEM AB Updater برای راه‌اندازی و بازگرداندن به‌روزرسانی‌ها برای پارتیشن سفارشی /oem_ab ، با قابلیت‌های مشابه به‌روزرسانی‌های A/B سیستم اندروید ، استفاده کنید.

برای مشاهده‌ی نمونه کد پیاده‌سازی کتابخانه‌ی به‌روزرسانی OEM AB به system/software_defined_vehicle/samples/oem_partition_update_client مراجعه کنید.

این راهنما نحوه استفاده از کتابخانه به‌روزرسانی OEM AB و ادغام آن با پیاده‌سازی سرویس به‌روزرسانی خودتان را شرح می‌دهد. این راهنما فرض می‌کند که شما از Cuttlefish برای ساخت و آزمایش تغییرات خود استفاده می‌کنید.

محل کتابخانه

کتابخانه‌ی به‌روزرسانی OEM AB در دایرکتوری system/software_defined_vehicle/platform/oem قرار دارد.

ساخت تصاویر سفارشی مورد نیاز

کتابخانه‌ی به‌روزرسانی OEM AB به چندین تصویر سفارشی نیاز دارد. این تصاویر در 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

دستگاه‌های بلوک سفارشی را مشخص کنید

تأیید کنید که هدف lunch Cuttlefish شما، 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 در یک سرویس جدید

برای استفاده از کتابخانه در سرویس دیگری:

  1. فایل 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` ایجاد کنید.