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_b khi slot_a đang hoạt động) để lưu trữ các tệp VDEX/ODEX được tối ưu hoá trước. Khi sử dụng system_other, ro.cp_system_other_odex đượ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ợ xác minh AVB độc lập cho phân vùng system_other. Cấu trúc VBMeta của một phân vùng như vậy sẽ được thêm vào cuối phân vùng để được xác minh bằng khoá công khai dự kiến từ hệ thống tệp. Hệ thống xây dựng Android hỗ trợ ký system_other.img trong khi đưa khoá ký tương ứng vào /product/etc/security/avb/system_other.avbpubkey. Công cụ phát hành sign_target_files_apks.py cũng hỗ trợ việc thay thế khoá ký thành phiên bản phát hành.

Các thiết bị A/B chạy 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 chạy Android 10 phải có phân vùng system_other logic. Ví dụ sau đây cho thấy một tệp fstab.postinstall thông thường 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

Các thiết bị cần bật AVB trên phân vùng system_other phải đặt tệp fstab vào 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