التحقّق من قسم 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 توقيع ملف APK 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 في قسم المنتج وضبط القيمة /product على سمة ro.postinstall.fstab.prefix.

# 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