MTE yapılandırması

MTE, Android çekirdeğinden ve herhangi bir cihazdan bağımsız olarak gerçekleştirebilirsiniz. Google, Google Analytics 4'te benzersiz bir tasarıma sahiptir ve cihaza maksimum esneklik sağlamayı amaçlar. birlikte çalışır.

Bu dokümanda, bize göre MTE ayarları ve kapsamı Android için güvenlik ile maliyet arasında iyi bir denge sağlar için her zaman açık bir çözüm olarak kullanıma sunduk.

Çekirdek

Çekirdekteki MTE, komut satırı üzerinden yapılandırılır. İlgili içeriği oluşturmak için kullanılan Senkronizasyon modunda varsayılan olarak AÇIK'tır. Bu durum, çeşitli nedenler:

  • Performansı ve ihtiyaçları en iyi uygulamalardır.
  • Çekirdek kodu kalitesinin gönderim için yetersiz olduğu yaygın olarak algılanmaktadır MTE'yi zorunlu kılma (yani başarısızlıkta panik) modunda.

Geçerli öneri, şurada çekirdek MTE'yi devre dışı bırakmanızdır: üretim cihazlarıdır. Bunu yapmak için, kasan=off öğesini şuraya ekleyin: kernel komut satırını kullanın.

Kullanıcı alanı

Google, korunacak kullanıcı alanı ikili programlarının varsayılan listesini sağlar MTE ile. Liste, Android Security'nin girişiyle oluşturuldu Ayrıca, ayrıcalıklı ve/veya güvenilmez olan bileşenler içerir giriş değerleridir. Önerilen yerel ikili programların güncel listesi bulabilirsiniz: "the" memtag-common.mk Android derlemesindeki dosya bahsedeceğim. Ayrıca, birkaç sistem uygulamaları şunlardır: şu anda, NFC, Bluetooth ve SecureElement. Bu ikili programlar ve uygulamalar varsayılan olarak eşzamansız modda etkinleştirilir.

Geçerli öneri, varsayılan hedef listesini kullanmanızdır. (değişiklik gerekmez). Ek olarak, kampanyalarınızın Çekirdek sisteme BSP ve OEM eklemeleri ve bu sistemlerde MTE'yi etkinleştirme bu yöntemi kullanabilirsiniz.

Uygulamalar

Yukarıdaki listede bulunan üç sistem uygulamasında yalnızca MTE'dir. Bir üçüncü taraf uygulamasının MTE'yi seçerseniz AndroidManifest.xml özelliği, Başka bir değerle android:memtagMode (off oranından daha). Bu nedenle, Geekbench veya AnTuTu, MTE ile çalışmaz. Çekirdek MTE'si de devre dışıysa (yukarıdaki kasan=off bölümüne bakın) karşılaştırmalar çok sınırlı performans etkisi göstermesi bekleniyor.

Diğer uygulamalarda olduğu gibi, Chrome'a dokunun. Chrome'un mevcut Play Store sürümü şunları içerir: Manifest dosyasındaki memtagMode=async ayarı. Ayrıca, çalışanların güvenlik bilincine sahip bazı uygulamaların (örneğin, bankacılık uygulamaları) da eninde sonunda aynı şeyi yapar. diğer yandan yoğun CPU kullanımı gerektiren bazı uygulamaların MTE'yi devre dışı bırakmayı seçer.

Diğer modlar

Yukarıdaki talimatlar yalnızca eşzamansız MTE modunu kullanır her yerde. Donanıma bağlı olarak, diğer modlar neredeyse veya hızlandırıyor. Ayrıca daha iyi teşhisler sunar ve özellikleri geliştirmenizi sağlar.

Bir veya iki yapılandırmayı daha test ederek bu yapılandırmaların performans/güç gereksinimlerinizi karşılayacak kadar iyidir. MTE modları sistemdeki her bir CPU çekirdeği için /sys/devices/system/cpu/cpu*/mte_tcf_preferred Örneğin, yazılı olarak sync (veya asymm), istekte bulunan kullanıcı alanı işlemlerine neden olur Bu işlem sırasında eşzamansız mod, senkronizasyona (veya Asymm) sessizce otomatik olarak yükseltilir çalışıyor diyelim. Bu kurulum, cihazdaki bir .rc dosyasında yapılabilir. unutmayın.

Kontrol etmek için bir veya iki yapılandırma daha ölçmenizi performans ve güç gereksinimlerinizi karşılarlar. Biraz keşfedilecek ilginç yapılandırmalar var:

  • Tüm çekirdeklerde Asymm.
  • Büyük çekirdeklerde Asymm, diğer çekirdeklerde Senkronizasyon.
ziyaret edin.

Bir işlemin eşzamansız mod (istenmeyen otomatik yükseltme) kullanıyorsanız aşağıdaki satırda her iki PR_MTE_TCF_SYNC ve PR_MTE_TCF_ASYNC:

  debuggerd <PID> | head -30 | grep tagged_addr

Maalesef bir reklamveren için etkili modu görmenin işlem; ancak yukarıda listelenen her iki değeri de gösteren işlemler otomatik yükseltme davranışına tabi olacaktır.