اندروید 13 یک ABI برای فضای کاربر معرفی می کند تا حالت MTE درخواستی را به بوت لودر منتقل کند. این میتواند برای فعال کردن MTE در دستگاههایی که پشتیبانی سختافزاری دارند، اما بهطور پیشفرض با MTE فعال نیست، یا برای غیرفعال کردن MTE در دستگاههایی که با آن ارسال میشوند، استفاده شود.
پشتیبانی از بوت لودر
برای پشتیبانی از این ABI، bootloader شما باید 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 برای SKU است. اگر memtag درست باشد، بوت لودر رزرو تگ MTE را تنظیم میکند، بررسی برچسبها را در سطوح استثنایی پایینتر فعال میکند و منطقه رزرو شده برچسب را از طریق DT به هسته ارتباط میدهد. اگر memtag نادرست باشد، بوت لودر 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 system را تنظیم کنید تا به سیستم نشان دهد که بوت لودر شما از پیام memtag پشتیبانی می کند.
رابط کاربری
هنگامی که ویژگیro.arm64.memtag.bootctl_supported تنظیم می شود، دکمه ای در منوی Developer Options به کاربر اجازه می دهد یک بار با فعال بودن MTE راه اندازی مجدد شود. مخاطبین هدف این برنامه توسعه دهندگان برنامه هستند که می خواهند برنامه های خود را با MTE آزمایش کنند. 
ویژگی سیستم
برای استفاده پیشرفته، ویژگی system arm64.memtag.bootctl میتواند فهرستی از مقادیر زیر را با کاما جدا کند:
- memtag: دائماً فضای کاربر MTE را فعال کنید (
MISC_MEMTAG_MODE_MEMTAGتنظیم کنید) - memtag-one: یک بار فضای کاربری 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)
برای اعمال تنظیمات جدید (همانطور که بوت لودر اعمال می کند) سیستم باید راه اندازی مجدد شود.