التوافق مع برنامج إقلاع MTE

يوفِّر 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. لقطة شاشة لخيار مطوِّر برامج 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)

يجب إعادة تشغيل النظام حتى يدخل الإعداد الجديد إلى حيز التنفيذ (كما هو الحال الآن) بواسطة برنامج الإقلاع).