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