MTE bootloader desteği

Android 13, istenen bilgiyi iletebilmek amacıyla kullanıcı alanı için bir ABI sunar MTE modunu bootloader'a yükseltin. Bu özellik, şu cihazlarda MTE'yi etkinleştirmek için kullanılabilir: donanım desteği vardır ancak MTE varsayılan olarak etkin şekilde gönderilmez. birlikte gönderilen cihazlarda MTE'yi devre dışı bırakın.

Bootloader desteği

Bu ABI'yi desteklemek için bootloader'ınızın misc_memtag_message (tanımlımı: bootloader_message.h) kaldırın.misc Geçerli bir misc_memtag_message bulunursa (MISC_VIRTUAL_AB_MAGIC_HEADER eşleşiyor ve sürüm numarası destekleniyor). Bootloader'ın bunu

memtag = (default_memtag && !(misc.memtag_mode ve MISC_MEMTAG_MODE_MEMTAG_OFF)) ||
      çeşitli MISC_MEMTAG_MODE_MEMTAG ||
      çeşitli MISC_MEMTAG_MODE_MEMTAG_ONCE

memtag_kernel = misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_KERNEL ||
      çeşitli MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE

default_memtag, şunun için varsayılan memtag açma/kapatma ayarıdır: SKU. memtag doğru değerine ayarlanırsa bootloader MTE etiketini ayarlar daha düşük istisna düzeylerinde etiket kontrollerini etkinleştirir ve etiketin ayrılmış bölgeyi DT aracılığıyla çekirdeğe bildirir. Eğer memtag yanlıştır. Bootloader, arm64.nomte değerini kernel komut satırını kullanın.

memtag_kernel doğru değerine ayarlanırsa bootloader kasan=on komutunu çekirdek komut satırına ekleyin.

Bootloader MUTLU MISC_MEMTAG_MODE_MEMTAG_ONCE ve Her başlatmada MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE.

Bootloader fastboot oem mte özelliğini destekliyorsa setlerde MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF} - (1, 0, 0) üzerinden başlayıp (0, 0, 1) boyunca korunduğundan emin olun.

Ürününüzü, mtectrl ikili programını oluşturacak şekilde yapılandırmanız gerekir kullanıyor. Ardından, Belirtecek ro.arm64.memtag.bootctl_supported sistem özelliği bunu bootloader'ınızın memtag mesajını desteklediğini sisteme bağlayın.

Kullanıcı arayüzü

ro.arm64.memtag.bootctl_supported özelliği ayarlandığında Geliştirici Seçenekleri menüsündeki düğmesi, kullanıcının MTE ile bir kez yeniden başlatmasına olanak tanır etkin. Bunun hedef kitlesi, uygulamanızı veya oyununuzu MTE ile kullanıyor. MTE geliştirici seçeneğinin ekran görüntüsü.

Sistem özelliği

Gelişmiş kullanım için, sistem özelliği arm64.memtag.bootctl, şu değerlere sahiptir:

  • memtag: kullanıcı alanı MTE'sini kalıcı olarak etkinleştirin ( MISC_MEMTAG_MODE_MEMTAG)
  • memtag-bir kez: kullanıcı alanı MTE'sini bir kez etkinleştirir ( MISC_MEMTAG_MODE_MEMTAG_ONCE)
  • memtag-kernel: çekirdek alanı MTE'sini etkinleştir ( MISC_MEMTAG_MODE_MEMTAG_KERNEL)
  • memtag-çekirdek-bir kez: çekirdek alanı MTE'sini bir kez etkinleştirin (MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE)
  • memtag-off: MTE'yi devre dışı bırak ( MISC_MEMTAG_MODE_MEMTAG_OFF)

Yeni ayarın geçerlilik kazanması için sistemin yeniden başlatılması gerekir (şu anki haliyle tarafından uygulanır).