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