MTE बूटलोडर की सुविधा

Android 13 में यूज़र-स्पेस के लिए एबीआई की सुविधा जोड़ी गई है, ताकि अनुरोध किए गए अनुरोधों की जानकारी दी जा सके एमटीई मोड से बूटलोडर पर स्विच किया जा रहा है. इसका इस्तेमाल, उन डिवाइसों पर एमटीई को चालू करने के लिए किया जा सकता है जिन पर आपके पास हार्डवेयर की सुविधा हो, लेकिन एमटीई को डिफ़ॉल्ट रूप से चालू न होने पर शिप न करें या उन डिवाइसों पर एमटीई को बंद कर देगा जो इससे शिप किए जा सकते हैं.

बूटलोडर की सुविधा

इस एबीआई के साथ काम करने के लिए, आपके बूटलोडर को misc_memtag_message (इसमें बताया गया है बूटलोडर_message.h) को misc पार्टिशन से हटा दिया गया है. अगर मान्य misc_memtag_message मिल जाता है (MISC_VIRTUAL_AB_MAGIC_HEADER मिलान और वर्शन नंबर काम करता है), बूटलोडर कंप्यूट करता है

memtag = (default_memtag && !(mic.memtag_mode और MISC_MEMTAG_Mode_MEMTAG_OFF))
      विविध.memtag_mode और MISC_MEMTAG_Mode_MEMTAG
      विविध.memtag_mode और MISC_MEMTAG_ मोड_MEMTAG_ONCE

memtag_kernel = कई.memtag_mode और MISC_MEMTAG_ मोड_MEMTAG_KERNEL
      विविध.memtag_mode और MISC_MEMTAG_Mode_MEMTAG_KERNEL_ONCE

default_memtag इनके लिए डिफ़ॉल्ट मेमटैग चालू/बंद सेटिंग है SKU. अगर memtag सही है, तो बूटलोडर MTE टैग सेट अप करता है रिज़र्वेशन की मदद से, निचले अपवाद लेवल में टैग की जांच की सुविधा चालू करता है और DT के माध्यम से कर्नेल को टैग आरक्षित क्षेत्र का संचार करता है. अगर आपने memtag गलत है, बूटलोडर आर्म64.nomte को कर्नेल कमांड लाइन.

अगर memtag_kernel सही है, तो बूटलोडर जुड़ जाता है kasan=on कर्नेल कमांड लाइन के लिए.

बूटलोडर को को हटाना MISC_MEMTAG_MODE_MEMTAG_ONCE और हर बूट में MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE.

अगर बूटलोडर fastboot oem mte के साथ काम करता है, तो सेट पर MISC_MEMTAG_MODE_{MEMTAG, MEMTAG_ONLY, MEMTAG_OFF} से (1, 0, 0) और (0, 0, 1) तक बंद, इस दौरान फिर से फ़्लैग कर रही हूँ.

mtectrl बाइनरी बनाने के लिए, आपको अपना प्रॉडक्ट कॉन्फ़िगर करना चाहिए उपयोगकर्ता स्पेस से जुड़ी सहायता के लिए. फिर, दिखाने के लिए ro.arm64.memtag.bootctl_supported सिस्टम प्रॉपर्टी उस सिस्टम में ट्रांसफ़र करें जो आपका बूटलोडर मेमटैग मैसेज के साथ काम करता है.

उपयोगकर्ता इंटरफ़ेस

ro.arm64.memtag.bootctl_supported प्रॉपर्टी को सेट करने पर, 'डेवलपर के लिए सेटिंग और टूल' मेन्यू में मौजूद बटन पर क्लिक करने से, उपयोगकर्ता MTE की मदद से एक बार फिर से चालू कर सकते हैं चालू किया गया. इसके लिए टारगेट ऑडियंस वे ऐप्लिकेशन डेवलपर हैं जो टेस्ट करना चाहते हैं MTE के साथ बनाए गए उनके ऐप्लिकेशन पर बात करें. एमटीई डेवलपर के लिए उपलब्ध विकल्प का स्क्रीनशॉट.

सिस्टम की प्रॉपर्टी

बेहतर इस्तेमाल के लिए, सिस्टम प्रॉपर्टी arm64.memtag.bootctl, कॉमा लगाकर अलग की गई, नीचे दिए गए मान:

  • memtag: यूज़र स्पेस एमटीई (सेट) को हमेशा चालू रखें MISC_MEMTAG_MODE_MEMTAG)
  • memtag-once: यूज़र स्पेस एमटीई को एक बार चालू करें (सेट करें MISC_MEMTAG_MODE_MEMTAG_ONCE)
  • memtag-kernel: kernel-space MTE (सेट) को चालू करें MISC_MEMTAG_MODE_MEMTAG_KERNEL)
  • memtag-kernel-once: kernel-space MTE को एक बार चालू करें (MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE)
  • memtag-off: एमटीई बंद करें (सेट करें MISC_MEMTAG_MODE_MEMTAG_OFF)

नई सेटिंग को लागू करने के लिए, सिस्टम को फिर से चालू करना होगा जिन्हें बूटलोडर ने लागू किया है).