يوفِّر 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
على "صحيح"، سيُعِد برنامج الإقلاع علامة MTE.
حجز وتفعيل عمليات فحص العلامات في مستويات الاستثناء الأدنى
تنقل العلامة المحجوزة إلى النواة عبر DT. في حال حذف
الدالة memtag
خاطئة، وبرنامج الإقلاع يلحق arm64.nomte بـ
سطر أوامر kernel.
في حال ضبط السياسة memtag_kernel
على "صحيح"، يتم إلحاق برنامج الإقلاع.
kasan=on
إلى سطر أوامر النواة.
يجب أن يمحو برنامج الإقلاع 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
الثنائي.
لدعم userspace. بعد ذلك، اضبط قيمة
خاصية نظام ro.arm64.memtag.bootctl_supported
للإشارة إلى
إلى النظام الذي يدعم برنامج الإقلاع رسالة العلامة المميزة.
واجهة المستخدم
عند ضبط السمة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: تفعيل kernel-space MTE (تعيين
MISC_MEMTAG_MODE_MEMTAG_KERNEL
) -
memtag-kernel-once: تفعيل kernel-space MTE مرة واحدة
(
MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE
) -
memtag-off: إيقاف إضافة وضع علامات الذاكرة (MTE) (ضبط
MISC_MEMTAG_MODE_MEMTAG_OFF
)
يجب إعادة تشغيل النظام حتى يدخل الإعداد الجديد إلى حيز التنفيذ (كما هو الحال الآن) بواسطة برنامج الإقلاع).