پارتیشن system_other را تایید کنید

پیاده‌سازی

دستگاه‌های اندروید با اندروید ۹ و پایین‌تر که پارتیشن‌های A/B دارند، می‌توانند از پارتیشن غیرفعال system_other (برای مثال، system_b وقتی slot_a فعال است) برای ذخیره فایل‌های VDEX/ODEX از پیش بهینه شده استفاده کنند. وقتی از system_other استفاده می‌شود، ro.cp_system_other_odex روی ۱ تنظیم می‌شود تا سرویس مدیریت بسته sys.cppreopt=requested را برای cppreopts.rc تنظیم کند تا روی آن عمل کند.

در اندروید ۱۰، libfs_avb برای پشتیبانی از تأیید AVB مستقل برای پارتیشن system_other معرفی شده است. ساختار VBMeta چنین پارتیشنی به انتهای پارتیشن اضافه می‌شود تا توسط یک کلید عمومی مورد انتظار از سیستم فایل تأیید شود. سیستم ساخت اندروید از امضای system_other.img پشتیبانی می‌کند و در عین حال کلید امضای مربوطه را در /product/etc/security/avb/system_other.avbpubkey قرار می‌دهد. ابزار انتشار sign_target_files_apks.py نیز از جایگزینی کلید امضا با نسخه انتشار پشتیبانی می‌کند.

دستگاه‌های A/B که قبل از اندروید ۱۰ عرضه شده‌اند، حتی اگر به اندروید ۱۰ ارتقا یافته باشند و PRODUCT_RETROFIT_DYNAMIC_PARTITIONS روی true تنظیم شده باشد، دارای یک پارتیشن فیزیکی system_other هستند.

دستگاه‌های A/B که با اندروید ۱۰ راه‌اندازی می‌شوند باید یک پارتیشن منطقی 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 را در پارتیشن product قرار دهند و ویژگی 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