پیاده سازی
دستگاههای مجهز به Android با Android 9 و پایینتر که دارای پارتیشن A/B هستند، میتوانند از پارتیشن غیرفعال system_other
(به عنوان مثال، system_b
زمانی که slot_a
فعال است) برای ذخیره فایلهای VDEX/ODEX از پیش بهینهشده استفاده کنند. هنگامی که system_other
استفاده می شود، ro.cp_system_other_odex
روی 1 تنظیم می شود تا سرویس مدیر بسته sys.cppreopt=requested
برای cppreopts.rc
بر روی آن عمل کند.
در اندروید 10،libfs_avb
برای پشتیبانی از تایید مستقل AVB برای پارتیشن system_other
معرفی شده است. ساختار VBMeta چنین پارتیشنی به انتهای پارتیشن اضافه می شود تا توسط یک کلید عمومی مورد انتظار از سیستم فایل تأیید شود. سیستم ساخت اندروید از امضای system_other.img
پشتیبانی میکند در حالی که کلید امضای مربوطه را در زیر /product/etc/security/avb/system_other.avbpubkey
قرار میدهد. ابزار انتشار sign_target_files_apks.py
همچنین از جایگزینی کلید امضا به نسخه انتشار پشتیبانی می کند.
دستگاههای A/B که قبل از Android 10 راهاندازی شدهاند، دارای یک پارتیشن فیزیکی system_other
هستند، حتی اگر با PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
به true
به Android 10 ارتقا یافته باشد.
دستگاههای A/B که با Android 10 راهاندازی میشوند باید دارای پارتیشن منطقی system_other
باشند. مثال زیر یک فایل معمولی fstab.postinstall
را نشان می دهد که AVB را در 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
دستگاه هایی که باید AVB را در پارتیشن system_other
فعال کنند باید فایل fstab
را در پارتیشن محصول قرار دهند و ویژگی ro.postinstall.fstab.prefix
را روی /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