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