Android 13 memperkenalkan ABI untuk ruang pengguna guna menyampaikan mode MTE yang diminta ke bootloader. Hal ini dapat digunakan 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
(ditentukan dalam
bootloader_message.h) dari partisi misc
.
Jika misc_memtag_message
yang valid ditemukan
(MISC_VIRTUAL_AB_MAGIC_HEADER
cocok, dan nomor versi didukung),
bootloader akan menghitung
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 aktif/nonaktif tag memori default untuk
SKU. Jika memtag
bernilai benar, bootloader akan menyiapkan reservasi tag MTE, mengaktifkan pemeriksaan tag di tingkat pengecualian yang lebih rendah, dan menyampaikan region yang dicadangkan tag ke kernel melalui DT. Jika
memtag
bernilai salah, bootloader akan menambahkan arm64.nomte ke
command line kernel.
Jika memtag_kernel
bernilai benar, bootloader akan menambahkan
kasan=on
ke command line kernel.
Bootloader HARUS menghapus MISC_MEMTAG_MODE_MEMTAG_ONCE
dan
MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE
pada setiap booting.
Jika bootloader mendukung fastboot oem mte
, maka aktif akan menetapkan
MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF}
ke
(1, 0, 0)
, dan nonaktif ke (0, 0, 1)
, sekaligus
mempertahankan flag lainnya.
Anda harus mengonfigurasi produk untuk mem-build biner mtectrl
untuk dukungan ruang pengguna. Kemudian, tetapkan
properti sistem ro.arm64.memtag.bootctl_supported
untuk menunjukkan
kepada sistem bahwa bootloader Anda mendukung pesan memtag.
Antarmuka pengguna
Saat propertiro.arm64.memtag.bootctl_supported
ditetapkan, tombol
di menu Opsi Developer memungkinkan pengguna memulai ulang sekali dengan MTE
diaktifkan. Target audiens untuk hal ini adalah developer aplikasi yang ingin menguji
aplikasi mereka dengan MTE.

Properti sistem
Untuk penggunaan lanjutan, properti sistem
arm64.memtag.bootctl
dapat menggunakan daftar yang dipisahkan koma dari
nilai berikut:
-
memtag: mengaktifkan MTE ruang pengguna secara persisten (set
MISC_MEMTAG_MODE_MEMTAG
) -
memtag-once: mengaktifkan MTE ruang pengguna satu kali (tetapkan
MISC_MEMTAG_MODE_MEMTAG_ONCE
) -
memtag-kernel: mengaktifkan MTE ruang kernel (set
MISC_MEMTAG_MODE_MEMTAG_KERNEL
) -
memtag-kernel-once: mengaktifkan MTE ruang kernel satu kali
(
MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE
) -
memtag-off: menonaktifkan MTE (set
MISC_MEMTAG_MODE_MEMTAG_OFF
)
Sistem harus dimulai ulang agar setelan baru diterapkan (karena diterapkan oleh bootloader).