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

التنفيذ

يمكن للأجهزة التي تعمل بنظام التشغيل 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