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

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

如需 OEM AB Updater 程式庫實作的程式碼範例,請參閱 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.mkdevice/google/sdv/sdv_core_base/oem_ab/oem_ab_metadata.mk

建構目標時,系統會建立 oem_ab.mkoem_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 程式庫

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

  1. 匯入 sdv_oem_updater::OemUpdater Crate,如 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`。