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.mk và device/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.mk và oem_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:
- Nhập thùng
sdv_oem_updater::OemUpdaternhư minh hoạ trongsystem/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`.