Bản cập nhật phân vùng A/B của OEM

SDV cho phép cập nhật A/B cho phân vùng /oem_ab tuỳ chỉnh. Sử dụng thư viện Trình cập nhật AB OEM để kích hoạt và khôi phục các bản cập nhật cho phân vùng /oem_ab tuỳ chỉnh, với các tính năng tương tự như bản cập nhật A/B của hệ thống Android.

Xem mã mẫu để biết cách triển khai thư viện Trình cập nhật AB OEM trong system/software_defined_vehicle/samples/oem_partition_update_client.

Hướng dẫn này mô tả cách sử dụng thư viện Trình cập nhật AB OEM và tích hợp thư viện này với cách triển khai Dịch vụ cập nhật của riêng bạn. Hướng dẫn này giả định rằng bạn đang sử dụng Cuttlefish để tạo và kiểm thử các thay đổi.

Vị trí thư viện

Thư viện Trình cập nhật AB OEM nằm trong thư mục system/software_defined_vehicle/platform/oem.

Tạo hình ảnh tuỳ chỉnh bắt buộc

Thư viện Trình cập nhật AB OEM yêu cầu một số hình ảnh tuỳ chỉnh. Các hình ảnh này được xác định trong device/google/sdv/sdv_core_base/oem_ab/oem_ab.mkdevice/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk.

Các hình ảnh tuỳ chỉnh bắt buộc được xác định trong oem_ab.mkoem_ab_metadata.mk sẽ được tạo khi mục tiêu được xây dựng. Ví dụ: việc tạo sdv_core_cf sẽ tạo các hình ảnh phân vùng:

source build/envsetup.sh
lunch sdv_core_cf-trunk_staging-userdebug
m

Chỉ định thiết bị khối tuỳ chỉnh

Xác minh rằng mục tiêu lunch của Cuttlefish đặt BOARD_BOOTCONFIG để ánh xạ các thiết bị khối đến thuộc tính bootconfig tương ứng. Ví dụ: hãy xem 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

Khởi động một VM mới

Sau khi xác minh rằng các thiết bị khối được ánh xạ, hãy tạo một VM mới bằng 3 hình ảnh tuỳ chỉnh:

cvd create --custom_partition_path="$OUT/oem_ab.img;$OUT/oem_ab.img;$OUT/oem_ab_metadata.img"

Sử dụng thư viện Trình cập nhật AB OEM trong một dịch vụ mới

Cách sử dụng thư viện trong một dịch vụ khác:

  1. Nhập thùng sdv_oem_updater::OemUpdater như minh hoạ trong system/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`.