التحقّق من قسم system_other

التنفيذ

يمكن لأجهزة Android 9 والإصدارات الأقدم التي تعمل بنظام Android والمزوّدة بأقسام A/B استخدام قسم system_other غير النشط (مثل system_b عندما يكون slot_a نشطًا) لتخزين ملفات VDEX/ODEX المحسّنة مسبقًا. عند استخدام system_other، يتم ضبط ro.cp_system_other_odex على 1 لكي تضبط خدمة "إدارة الحِزم" `sys.cppreopt=requested` لكي تتفاعل cppreopts.rc معها.sys.cppreopt=requested

في 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