MTE-Bootloader-Unterstützung

Mit Android 13 wird ein ABI für den Nutzerbereich eingeführt, um die angeforderten Informationen zu kommunizieren. MTE-Modus zum Bootloader. Hiermit kann MTE auf Geräten aktiviert werden, Hardware-Unterstützung bieten, aber MTE nicht standardmäßig aktiviert ist, oder MTE auf Geräten deaktivieren, die im Lieferumfang enthalten sind.

Bootloader-Unterstützung

Zur Unterstützung dieses ABI muss der Bootloader die misc_memtag_message (definiert in <ph type="x-smartling-placeholder"></ph> bootloader_message.h) aus der Partition misc. Wenn eine gültige misc_memtag_message gefunden wird (MISC_VIRTUAL_AB_MAGIC_HEADER stimmt überein und die Versionsnummer wird unterstützt). berechnet der Bootloader

memtag = (default_memtag && !(misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_OFF)) || (Standardmemtag && !(misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_OFF)) ||
      misc.memtag_mode und MISC_MEMTAG_MODE_MEMTAG ||
      misc.memtag_mode und MISC_MEMTAG_MODE_MEMTAG_ONCE-

memtag_kernel = misc.memtag_mode &
 MISC_MEMTAG_MODE_MEMTAG_KERNEL ||
      misc.memtag_mode und MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE (MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE)

default_memtag ist die standardmäßige Aktivierungs-/Deaktivierungseinstellung für das Artikelnummer Wenn memtag „true“ ist, richtet der Bootloader das MTE-Tag ein Reservierung, ermöglicht Tag-Prüfungen in den unteren Ausnahmeebenen und übermittelt die für das Tag reservierte Region über DT an den Kernel. Wenn memtag auf „false“ gesetzt ist, hängt der Bootloader arm64.nomte an den Kernel-Befehlszeile.

Wenn memtag_kernel „true“ ist, hängt der Bootloader kasan=on in die Kernel-Befehlszeile.

Bootloader MÜSSEN MISC_MEMTAG_MODE_MEMTAG_ONCE und MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE bei jedem Start.

Wenn der Bootloader fastboot oem mte unterstützt, wird bei festgelegt MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF} bis (1, 0, 0) und ab nach (0, 0, 1), während unter Beibehaltung der anderen Flags.

Sie sollten Ihr Produkt so konfigurieren, dass die Binärdatei mtectrl erstellt wird für den Userspace. Legen Sie dann ro.arm64.memtag.bootctl_supported-Systemeigenschaft zur Angabe dass Ihr Bootloader die Memtag-Nachricht unterstützt.

Benutzeroberfläche

Wenn das Attribut ro.arm64.memtag.bootctl_supported festgelegt ist, im Menü „Entwickleroptionen“ können Nutzer einen Neustart mit MTE starten. aktiviert. Die Zielgruppe sind App-Entwickler, ihre Apps mit MTE. Screenshot der MTE-Entwickleroption.

Systemeigenschaft

Für die erweiterte Verwendung ist die Systemeigenschaft arm64.memtag.bootctl kann eine durch Kommas getrennte Liste der folgende Werte:

  • memtag: Nutzerbereich-MTA dauerhaft aktivieren (set MISC_MEMTAG_MODE_MEMTAG)
  • memtag-once: MTE für Nutzerbereich einmal aktivieren (set MISC_MEMTAG_MODE_MEMTAG_ONCE)
  • memtag-kernel: Kernel-Space-MTE aktivieren (set MISC_MEMTAG_MODE_MEMTAG_KERNEL)
  • memtag-kernel-once: Kernel-Space-MTE einmal aktivieren (MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE)
  • memtag-off: MTE deaktivieren (set MISC_MEMTAG_MODE_MEMTAG_OFF)

Das System muss neu gestartet werden, damit die neue Einstellung vom Bootloader angewendet wird).