يقدّم نظام التشغيل Android 13 واجهة ثنائية التطبيق (ABI) لمساحة المستخدم من أجل إرسال وضع MTE المطلوب إلى برنامج التشغيل. يمكنك استخدام هذا الخيار لتفعيل إضافة وضع علامات الذاكرة (MTE) على الأجهزة التي تتوافق معها ولكن لا يتم تفعيلها تلقائيًا عليها، أو لإيقافها على الأجهزة التي يتم تفعيلها تلقائيًا عليها.
توافُق برنامج الإقلاع
ولإتاحة استخدام واجهة التطبيق الثنائية هذه، يجب أن يتمكّن برنامج الإقلاع من قراءة
misc_memtag_message (المحدّد في
bootloader_message.h) من القسم misc.
في حال العثور على misc_memtag_message صالح
(تتطابق MISC_MEMTAG_MAGIC_HEADER، ويتوافق رقم الإصدار)،
يحسب برنامج التشغيل ما يلي:
memtag = (default_memtag && !(misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_OFF)) || misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG || misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_ONCE memtag_kernel = misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_KERNEL || misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE
default_memtag هو الإعداد التلقائي لتفعيل أو إيقاف memtag لوحدة حفظ المخزون (SKU) المحدّدة بواسطة برنامج التشغيل. إذا كانت قيمة memtag هي true،
سيضبط برنامج الإقلاع عملية حجز العلامات في MTE، وسيتيح عمليات التحقّق من العلامات في مستويات الاستثناء الأدنى،
وسيُرسل المنطقة المحجوزة للعلامات إلى النواة باستخدام
شجرة الأجهزة (DT). إذا كانت قيمة memtag هي false، يلحق برنامج التحميل arm64.nomte بسطر أوامر النواة.
إذا كانت قيمة memtag_kernel هي true، يضيف برنامج الإقلاع kasan=on إلى سطر أوامر النواة. بخلاف ذلك، سيتم إلحاق kasan=off.
يجب أن يمحو برنامج تحميل التشغيل MISC_MEMTAG_MODE_MEMTAG_ONCE وMISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE في كل عملية تشغيل.
إذا كان برنامج التشغيل الأوّلي يتيح استخدام fastboot oem mte، يجب أن يضبط الوسيط on العلامات MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF} على (1, 0, 0)، وأن يضبط الوسيط off العلامات على (0, 0, 1)، مع الحفاظ على العلامات الأخرى.
اضبط منتجك لإنشاء mtectrl ثنائي لدعم مساحة المستخدم.
بعد ذلك، اضبط خاصية النظام ro.arm64.memtag.bootctl_supported للإشارة إلى أنّ برنامج الإقلاع يتيح عرض رسالة memtag.
واجهة المستخدم
عند ضبط السمة ro.arm64.memtag.bootctl_supported، تتيح قائمة
إضافة "وضع العلامات في الذاكرة" في قائمة خيارات المطوّرين
للمستخدم تفعيل MTE على الجهاز. والجمهور المستهدَف من هذه الميزة هم مطوّرو التطبيقات الذين يريدون اختبار تطبيقاتهم باستخدام MTE.

الشكل 1: قائمة المطوّرين في ميزة "إضافة وضع علامات الذاكرة" (MTE)
سمة النظام
للاستخدام المتقدّم، يمكن أن تأخذ سمة النظام arm64.memtag.bootctl قائمة مفصولة بفواصل من القيم التالية:
-
memtagتفعّل بشكل دائم ميزة "إضافة وضع علامات الذاكرة" (MTE) في مساحة المستخدم (تم ضبطMISC_MEMTAG_MODE_MEMTAG). -
تتيح
memtag-onceتفعيل MTE في مساحة المستخدم مرة واحدة (ضبطMISC_MEMTAG_MODE_MEMTAG_ONCE). -
تتيح
memtag-kernelاستخدام MTE في مساحة النواة (تم ضبطMISC_MEMTAG_MODE_MEMTAG_KERNEL). -
يؤدي ضبط
memtag-kernel-onceإلى تفعيل إضافة وضع علامات الذاكرة (MTE) في مساحة النواة مرة واحدة (يجب ضبطMISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE). -
يؤدي
memtag-offإلى إيقاف MTE (القيمةMISC_MEMTAG_MODE_MEMTAG_OFF).
يتم تطبيق الإعداد من خلال برنامج التحميل، لذا أعِد تشغيل النظام بعد إجراء أي تغيير.