التنفيذ
يمكن للأجهزة التي تعمل بنظام التشغيل 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
لكي يتخذ إجراءً بشأنه.
في نظام التشغيل Android 10، تم تقديم libfs_avb
للسماح بالتحقق من بروتوكول AVB المستقل للقسيمة
system_other
. تتم إضافة بنية VBMeta لهذا القسم
إلى نهاية القسم، ليتم التحقّق منه باستخدام مفتاح عام متوقّع
من نظام الملفات. يتيح نظام إصدار Android توقيع
"system_other.img
" مع تضمين مفتاح التوقيع
المقابل ضمن "/product/etc/security/avb/system_other.avbpubkey
". تتيح أداة
الإصدار sign_target_files_apks.py
أيضًا استبدال مفتاح
التوقيع بإصدار الإصدار.
تحتوي أجهزة A/B التي تم طرحها قبل Android 10 على قسم ملف شخصي
system_other
، حتى إذا تمت ترقيتها إلى Android 10 مع ضبط
PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
على true
.
يجب أن تحتوي أجهزة 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