يقدّم نظام التشغيل Android 13 معرّف ABI لمساحة المستخدم من أجل إرسال طلب وضع MTE إلى أداة تحميل البرامج. يمكن استخدام هذا الخيار لتفعيل ميزة MTE على الأجهزة التي تتوفّر فيها ميزة MTE ولكن لا يتم شحنها مفعّلة بشكل تلقائي، أو لإيقاف ميزة MTE على الأجهزة التي يتم شحنها مفعّلة.
دعم برنامج الإقلاع
لتتوافق مع معيار ABI هذا، يجب أن يقرأ برنامج الإقلاع ملف misc_memtag_message
(الذي تم تحديده في
bootloader_message.h) من قسم misc
.
إذا تم العثور على misc_memtag_message
صالح
(تطابق MISC_VIRTUAL_AB_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
صحيحة، يُعدّ أداة تحميل البرامج علامة MTE
محجوزة، ويفعّل عمليات التحقّق من العلامة في مستويات الاستثناءات الأقل، ويُبلغ
عن المنطقة المحجوزة للعلامة إلى النواة من خلال DT. إذا كان
memtag
غير صحيح، يُلحق مُشغِّل الإقلاع ملف arm64.nomte بسطر ملف برمجة
نظام التشغيل.
إذا كان memtag_kernel
صحيحًا، يُضيف مُشغِّل الإقلاع
kasan=on
إلى سطر أوامر kernel.
يجب أن يُزيل برنامج الإقلاع MISC_MEMTAG_MODE_MEMTAG_ONCE
MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE
عند كل عملية إقلاع.
إذا كان مُشغِّل الإقلاع متوافقًا مع fastboot oem mte
، يتم ضبط القيمة "مفعَّل" على
MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF}
ليصبح
(1, 0, 0)
، والقيمة "غير مفعَّل" على (0, 0, 1)
، مع
الحفاظ على العلامات الأخرى.
يجب ضبط منتجك لإنشاء ملف ثنائي mtectrl
لتفعيل مساحة المستخدم. بعد ذلك، اضبط
ro.arm64.memtag.bootctl_supported
خاصية النظام للإشارة
إلى النظام بأنّ أداة تحميل البرامج الأساسية متوافقة مع رسالة memtag.
واجهة المستخدم
عند ضبط السمةro.arm64.memtag.bootctl_supported
، يسمح زر
في قائمة "خيارات المطوّرين" للمستخدم بإعادة تشغيل الجهاز مرة واحدة مع تفعيل ميزة MTE. الجمهور المستهدَف لهذه الميزة هو مطوّرو التطبيقات الذين يريدون اختبار
تطبيقاتهم باستخدام ميزة MTE.

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