Android 13 memperkenalkan ABI untuk ruang pengguna guna mengomunikasikan mode MTE yang diminta ke bootloader. Hal ini dapat digunakan untuk mengaktifkan MTE di perangkat yang memiliki dukungan hardware tetapi tidak dikirimkan dengan MTE yang diaktifkan secara default, atau untuk menonaktifkan MTE di perangkat yang dikirimkan dengan MTE.
Dukungan bootloader
Untuk mendukung ABI ini, bootloader Anda harus membaca
misc_memtag_message
(ditetapkan di
bootloader_message.h) dari partisi misc
.
Jika misc_memtag_message
yang valid ditemukan
(MISC_VIRTUAL_AB_MAGIC_HEADER
cocok, dan nomor versinya didukung),
bootloader 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 memtag default untuk
SKU. Jika memtag
benar (true), bootloader akan menyiapkan reservasi tag MTE, mengaktifkan pemeriksaan tag di tingkat pengecualian yang lebih rendah, dan mengomunikasikan wilayah yang dicadangkan tag ke kernel melalui DT. Jika
memtag
bernilai salah (false), bootloader akan menambahkan
arm64.nomte
ke command line kernel.
Jika memtag_kernel
benar, 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
pada setiap booting.
Jika bootloader mendukung fastboot oem mte
, maka setel
MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF}
ke
(1, 0, 0)
, dan nonaktif ke (0, 0, 1)
, sambil
mempertahankan flag lainnya.
Anda harus mengonfigurasi produk untuk membuat 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 melakukan reboot sekali dengan MTE diaktifkan. Audiens target untuk ini adalah developer aplikasi yang ingin menguji
aplikasi mereka dengan MTE.

Properti sistem
Untuk penggunaan lanjutan, properti sistem
arm64.memtag.bootctl
dapat menggunakan daftar nilai berikut yang dipisahkan koma:
-
memtag: mengaktifkan MTE ruang pengguna secara persisten (set
MISC_MEMTAG_MODE_MEMTAG
) -
memtag-once: mengaktifkan MTE ruang pengguna satu kali (set
MISC_MEMTAG_MODE_MEMTAG_ONCE
) -
memtag-kernel: mengaktifkan MTE ruang kernel (tetapkan
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).