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 更新工具程式庫
如要在其他服務中使用程式庫,請按照下列步驟操作:
按照
system/software_defined_vehicle/samples/oem_partition_update_client/oem_partition_client.rs中的示範,匯入sdv_oem_updater::OemUpdatercrate。建立新的
.te政策,類似於device/google/sdv/sdv_core_cf/sepolicy/product/private/oem_partition_client.te中定義的 SELinux 政策。