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.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-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 程式庫
如要在其他服務中使用程式庫,請按照下列步驟操作:
- 匯入
sdv_oem_updater::OemUpdaterCrate,如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`。