يقدّم نظام التشغيل 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 لرمز التخزين التعريفي. إذا كانت قيمة memtag هي true، سيُعدّ برنامج الإقلاع عملية حجز العلامات في MTE، وسيتيح عمليات التحقّق من العلامات في مستويات الاستثناء الأدنى، وسيُبلغ النواة بالمنطقة المحجوزة للعلامات باستخدام شجرة الأجهزة (DT). إذا كانت قيمة memtag هي false، يلحق برنامج الإقلاع arm64.nomte بسطر أوامر النواة.
إذا كانت قيمة memtag_kernel هي true، يضيف برنامج الإقلاع kasan=on إلى سطر أوامر النواة. بخلاف ذلك، تتم إضافة kasan=off.
يجب أن يمحو برنامج Bootloader 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. الجمهور المستهدَف من هذه الميزة هم مطوّرو التطبيقات الذين يريدون اختبار تطبيقاتهم باستخدام 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).
يتم تطبيق الإعداد من خلال برنامج التحميل، لذا أعِد تشغيل النظام بعد إجراء أي تغيير.