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
)
नई सेटिंग को लागू करने के लिए, सिस्टम को फिर से चालू करना होगा जिन्हें बूटलोडर ने लागू किया है).