Xác minh phân vùng system_other

Thực hiện

Các thiết bị chạy Android 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 hóa trước. Khi system_other được sử dụng, ro.cp_system_other_odex được đặt thành 1 để dịch vụ quản lý gói đặt sys.cppreopt=requested để cppreopts.rc hành động theo 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 phân vùng như vậy được gắn vào cuối phân vùng, để được xác minh bằng khóa chung 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 bao gồm khóa 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ế khóa ký thành phiên bản phát hành.

Các thiết bị A/B ra mắt trước Android 10 có phân vùng system_other vật lý, ngay cả khi thiết bị đó đượ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 khởi chạy cùng Android 10 phải có phân vùng system_other . Ví dụ sau đây hiển thị tệp fstab.postinstall điển hình cho phép bật 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 nên đặ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