MTE को Android कर्नेल में और किसी भी अन्य डिवाइस में अलग से चालू किया जा सकता है एक लेख की शुरुआत होती है. Google, किसी खास ऑफ़र के लिए अनुमति नहीं देता है इसका मकसद डिवाइस को ज़्यादा से ज़्यादा सुविधाएं देना है बिल्डर.
इस दस्तावेज़ में एमटीई की सेटिंग और उस दायरे के बारे में बताया गया है जो हमारी राय में, Android को सुरक्षा और लागत के बीच एक बेहतर संतुलन देता है जोखिम की आशंका को हमेशा चालू रखने की कोशिश कर रहे हैं.
कर्नेल
कर्नेल में MTE को कमांड लाइन के ज़रिए कॉन्फ़िगर किया जाता है. कॉन्टेंट बनाने सिंक मोड में डिफ़ॉल्ट रूप से चालू रहता है. इस अवधि में, आने वाले समय में इसकी कई वजहें हो सकती हैं:
- यह देखा गया है कि इससे परफ़ॉर्मेंस और ज़रूरतों पर काफ़ी असर पड़ता है ऑप्टिमाइज़ेशन काम करता है.
- कर्नेल कोड की क्वालिटी, ज़्यादातर शिप करने के लिए काफ़ी नहीं होती एमटीई को लागू करने (यानी पैनिक ऑन फ़ेलर) मोड में है.
फ़िलहाल, आपको कर्नेल एमटीई को बंद करने का सुझाव दिया गया है
प्रोडक्शन के लिए इस्तेमाल होने वाले डिवाइस. ऐसा करने के लिए, kasan=off
को इसमें जोड़ें
कर्नेल कमांड लाइन.
यूज़रस्पेस
Google, सुरक्षित करने के लिए यूज़रस्पेस बाइनरी की डिफ़ॉल्ट सूची उपलब्ध कराता है शामिल हैं. यह सूची, Android Security से मिले इनपुट का इस्तेमाल करके बनाई गई है और इसमें ऐसे कॉम्पोनेंट शामिल हैं जो खास अधिकार वाले हैं और/या जिन पर भरोसा नहीं किया जा सकता है इनपुट. हमारा सुझाव है कि आपकी नेटिव बाइनरी की अप-टू-डेट सूची हो में उपलब्ध है, यह memtag-common.mk Android बिल्ड में मौजूद फ़ाइल सिस्टम. इसके अलावा, कई सिस्टम ऐप्लिकेशन इसमें ये भी शामिल हैं: फ़िलहाल, NFC, ब्लूटूथ और SecureElement. ये बाइनरी और ऐप्लिकेशन डिफ़ॉल्ट रूप से एसिंक्रोनस मोड में चालू रहता है.
मौजूदा सुझाव यह है कि आप टारगेट की डिफ़ॉल्ट सूची का इस्तेमाल करें (किसी बदलाव की ज़रूरत नहीं है). साथ ही, हमारा सुझाव है कि आप अपने बीएसपी और ओईएम को मुख्य सिस्टम में जोड़ा गया और इनके पर एमटीई को चालू किया गया जो सुरक्षा के लिए संवेदनशील हों.
ऐप्लिकेशन
ऊपर दी गई सूची में मौजूद तीन सिस्टम ऐप्लिकेशन ही सिर्फ़ इनका इस्तेमाल कर रहे हैं
मौजूदा समय में एमटीई. तीसरे पक्ष के ऐप्लिकेशन के लिए चालू करने के लिए
MTE, इसके AndroidManifest.xml
को यह बताना होगा
किसी अन्य मान के साथ android:memtagMode
off
से भी अलग है. इसलिए, सामान्य बेंचमार्क सुइट, जैसे कि
Geekbench या AnTuTu, MTE के साथ काम नहीं करते हैं. अगर कर्नेल MTE भी
बंद है (ऊपर kasan=off
देखें), तो मानदंड
परफ़ॉर्मेंस पर बहुत कम असर पड़ने की उम्मीद है.
अन्य ऐप्लिकेशन की तरह ही, इन ऐप्लिकेशन में MTE के सहायता केंद्र को अपडेट किया जा रहा है
Chrome. Chrome के मौजूदा Play Store वर्शन में ये शामिल हैं
मेनिफ़ेस्ट में memtagMode=async
सेटिंग. यह हमारी उम्मीद भी है
Android नेटवर्क में, सुरक्षा का ध्यान रखने वाले कई ऐप्लिकेशन
(उदाहरण के लिए, बैंक के ऐप्लिकेशन) भी यही काम करेंगे. इस
वहीं दूसरी ओर, हमें उम्मीद है कि कुछ ऐप्लिकेशन को सबसे ज़्यादा सीपीयू डिमांड की ज़रूरत होगी
की वजह से हो सकता है कि गेम में एमटीई को बंद रखा जाए.
अन्य मोड
ऊपर दिए गए निर्देश सिर्फ़ एसिंक्रोनस एमटीई मोड का इस्तेमाल करते हैं हर जगह. हार्डवेयर के आधार पर, अन्य मोड लगभग या उतनी ही तेज़ी से. वे बेहतर डाइग्नोस्टिक्स भी देते हैं और कुछ हद तक जोखिम को कम करने की बेहतर प्रॉपर्टी.
हमारा सुझाव है कि आप एक या दो अन्य कॉन्फ़िगरेशन की जांच करें, ताकि यह पता लगाया जा सके कि वे
आपके प्रदर्शन/पावर से जुड़ी ज़रूरतों के लिए काफ़ी हैं. एमटीई मोड
को लिखकर, सिस्टम के हर सीपीयू कोर के लिए सेट किया जा सकता है
/sys/devices/system/cpu/cpu*/mte_tcf_preferred
. उदाहरण के लिए, लिखना
sync
(या asymm
) की वजह से, अनुरोध की गई कोई भी यूज़रस्पेस प्रोसेस शुरू हो जाएगी
सिंक (या Asymm) में, अपने-आप अपग्रेड होने के लिए एसिंक्रोनस मोड
तेज़ी से काम करता है. यह सेटअप डिवाइस पर, .rc फ़ाइल में किया जा सकता है
बूट होने में लगने वाला समय.
हमारा सुझाव है कि आप एक या दो अन्य कॉन्फ़िगरेशन को मेज़र करें, ताकि यह पता लगाया जा सके कि क्या वे आपकी परफ़ॉर्मेंस और पावर की ज़रूरतों को पूरा करते हैं. कुछ सूचनाएं मिल रही हैं एक्सप्लोर करने के लिए दिलचस्प कॉन्फ़िगरेशन:
- सभी कोर पर असम.
- बड़े कोर पर असमान, दूसरे कोर पर सिंक करें.
यह पुष्टि करने के लिए कि कोई प्रोसेस, एसिंक्रोनस मोड का अनुरोध कर रही है स्वचालित अपग्रेड) के लिए, जाँच करें कि नीचे दी गई पंक्ति में दोनों शामिल हैं PR_MTE_TCF_SYNC और PR_MTE_TCF_ASYNC:
debuggerd <PID> | head -30 | grep tagged_addr
हालांकि, इस रणनीति के लिए असरदार मोड को देखने का कोई आसान तरीका नहीं है प्रोसेस; लेकिन ऊपर दी गई दोनों वैल्यू को दिखाने वाली किसी भी प्रोसेस में स्वचालित अपग्रेड व्यवहार के अधीन है.