原始設備製造商 (OEM) AB 分區更新

SDV 會為自訂 /oem_ab 分區啟用 A/B 更新。使用 OEM AB Updater 程式庫觸發及復原自訂 /oem_ab 分區的更新,功能與 Android 系統 A/B 更新類似。

如需 OEM AB 更新工具程式庫實作的程式碼範例,請參閱 system/software_defined_vehicle/samples/oem_partition_update_client。

本指南說明如何使用 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-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

啟動新的 VM

確認區塊裝置已對應後,請使用三個自訂映像檔建立新的 VM:

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

在新服務中使用 OEM AB 更新工具程式庫

如要在其他服務中使用程式庫,請按照下列步驟操作:

  1. 按照 system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs 中的示範,匯入 sdv_oem_updater::OemUpdater crate。

  2. 建立新的 .te 政策,類似於 device/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te 中定義的 SELinux 政策。