Android 13 memperkenalkan ABI untuk ruang pengguna guna mengomunikasikan mode MTE yang diminta ke bootloader. Anda dapat menggunakannya untuk mengaktifkan MTE di perangkat yang memiliki dukungan hardware tetapi tidak dilengkapi dengan MTE yang diaktifkan secara default, atau untuk menonaktifkan MTE di perangkat yang dilengkapi dengan MTE.
Dukungan bootloader
Untuk mendukung ABI ini, bootloader Anda harus membaca
misc_memtag_message (ditetapkan dalam
bootloader_message.h) dari partisi misc.
Jika misc_memtag_message yang valid ditemukan
(MISC_MEMTAG_MAGIC_HEADER cocok, dan nomor versi didukung),
bootloader akan menghitung sebagai berikut:
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 adalah setelan default aktif atau nonaktif untuk memtag di SKU. Jika memtag adalah true, bootloader akan menyiapkan reservasi tag MTE, mengaktifkan pemeriksaan tag di tingkat pengecualian yang lebih rendah, dan mengomunikasikan wilayah yang dicadangkan tag ke kernel dengan devicetree (DT). Jika
memtag adalah false, bootloader akan menambahkan
arm64.nomte ke command line kernel.
Jika memtag_kernel adalah true, bootloader akan menambahkan
kasan=on ke command line kernel. Jika tidak, kasan=off akan ditambahkan.
Bootloader harus menghapus MISC_MEMTAG_MODE_MEMTAG_ONCE dan
MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE setiap kali melakukan booting.
Jika bootloader mendukung fastboot oem mte, argumen on harus menetapkan flag
MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF} ke
(1, 0, 0), dan argumen off harus menetapkannya ke (0, 0, 1),
sekaligus mempertahankan flag lainnya.
Konfigurasi produk Anda untuk membuat biner mtectrl untuk dukungan ruang pengguna.
Kemudian, setel properti sistem ro.arm64.memtag.bootctl_supported untuk menunjukkan
kepada sistem bahwa bootloader Anda mendukung pesan memtag.
Antarmuka pengguna
Saat properti ro.arm64.memtag.bootctl_supported disetel, opsi Mulai Ulang dengan MTE di menu Opsi Developer memungkinkan Anda memulai ulang sekali dengan MTE diaktifkan. Target audiens untuk ini adalah developer aplikasi yang ingin menguji aplikasi mereka dengan
MTE.

Gambar 1. Opsi developer MTE.
Properti sistem
Untuk penggunaan lanjutan, properti sistem
arm64.memtag.bootctl dapat menggunakan daftar nilai berikut yang dipisahkan koma:
-
memtagmengaktifkan MTE ruang pengguna secara persisten (setelMISC_MEMTAG_MODE_MEMTAG). -
memtag-oncemengaktifkan MTE ruang pengguna satu kali (setelMISC_MEMTAG_MODE_MEMTAG_ONCE). -
memtag-kernelmengaktifkan MTE ruang kernel (tetapkanMISC_MEMTAG_MODE_MEMTAG_KERNEL). -
memtag-kernel-oncemengaktifkan MTE ruang kernel sekali (tetapkanMISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE). -
memtag-offmenonaktifkan MTE (setMISC_MEMTAG_MODE_MEMTAG_OFF).
Setelan diterapkan oleh bootloader, jadi mulai ulang sistem setelah Anda melakukan perubahan.