Xác minh phân vùng system_other

Triển khai

Các thiết bị chạy Android 9 trở xuống có phân vùng A/B có thể sử dụng phân vùng system_other không hoạt động (ví dụ: system_bkhi slot_a đang hoạt động) để lưu trữ các tệp VDEX/ODEX được tối ưu hoá trước. Khi system_other được dùng, ro.cp_system_other_odex sẽ được đặt thành 1 để dịch vụ trình quản lý gói đặt sys.cppreopt=requested cho cppreopts.rc để thực hiện hành động trên đó.

Trong Android 10, libfs_avb được giới thiệu để hỗ trợ quy trình xác minh AVB độc lập cho phân vùng system_other. Cấu trúc VBMeta của phân vùng như vậy được thêm vào cuối phân vùng để được xác minh bằng khoá công khai dự kiến trong hệ thống tệp. Hệ thống bản dựng Android hỗ trợ việc ký system_other.img trong khi bao gồm khoá ký tương ứng trong /product/etc/security/avb/system_other.avbpubkey. Công cụ phát hành sign_target_files_apks.py cũng hỗ trợ thay thế khoá ký bằng một phiên bản phát hành.

Các thiết bị A/B ra mắt trước Android 10 có một phân vùng system_other thực, ngay cả khi được nâng cấp lên Android 10 với PRODUCT_RETROFIT_DYNAMIC_PARTITIONS được đặt thành true.

Các thiết bị A/B ra mắt cùng với Android 10 phải có một phân vùng system_other logic. Ví dụ sau đây cho thấy một tệp fstab.postinstall điển hình cho phép AVB trên system_other.

#<dev> <mnt_point> <type>  <mnt_flags options>  <fs_mgr_flags>
system /postinstall ext4 ro,nosuid,nodev,noexec
slotselect_other,logical,avb_keys=/product/etc/security/avb/system_other.avbpubkey

Những thiết bị cần bật AVB trên phân vùng system_other nên đặt tệp fstab trong phân vùng sản phẩm và đặt thuộc tính ro.postinstall.fstab.prefix thành /product.

# Use /product/etc/fstab.postinstall to mount system_other. PRODUCT_PRODUCT_PROPERTIES += \
ro.postinstall.fstab.prefix=/product

PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall