التحقّق من قسم 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 من أجل اتّخاذ إجراء بشأنها.

في نظام التشغيل 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