MTE কনফিগারেশন

এমটিই স্বাধীনভাবে অ্যান্ড্রয়েড কার্নেলে এবং অ্যান্ড্রয়েড সিস্টেমের যেকোনো প্রক্রিয়ায় সক্রিয় করা যেতে পারে। Google কোনো নির্দিষ্ট কনফিগারেশন বাধ্যতামূলক করে না এবং ডিভাইস নির্মাতাদের সর্বোচ্চ নমনীয়তা প্রদানের লক্ষ্য রাখে।

এই দস্তাবেজটি MTE সেটিংস এবং সুযোগ বর্ণনা করে যা, আমাদের মতে, সর্বদা-অনুকূলতা প্রশমন হিসাবে Android ব্যবহারকারীদের জন্য নিরাপত্তা এবং খরচের মধ্যে একটি ভাল ট্রেড-অফ প্রদান করে৷

কার্নেল

কার্নেলের MTE কমান্ড লাইনের মাধ্যমে কনফিগার করা হয়। সিঙ্ক মোডে ডিফল্ট চালু থাকে। এটি বিভিন্ন কারণে ভবিষ্যতের পরিবর্তন সাপেক্ষে:

  • এটা উল্লেখযোগ্যভাবে কর্মক্ষমতা প্রভাবিত দেখানো হয়েছে এবং অপ্টিমাইজেশান কাজ প্রয়োজন.
  • কার্নেল কোডের গুণমান ব্যাপকভাবে এনফোর্সিং (অর্থাৎ প্যানিক-অন-ফেইলিউর) মোডে MTE পাঠানোর জন্য অপর্যাপ্ত বলে মনে করা হয়।

বর্তমান সুপারিশ হল উৎপাদন ডিভাইসে কার্নেল MTE নিষ্ক্রিয় করা । এটি করার জন্য, কার্নেল কমান্ড লাইনে kasan=off যোগ করুন।

ইউজারস্পেস

Google MTE দিয়ে সুরক্ষিত করার জন্য ব্যবহারকারীর স্থান বাইনারিগুলির একটি ডিফল্ট তালিকা প্রদান করে। তালিকাটি অ্যান্ড্রয়েড সিকিউরিটি থেকে ইনপুট দিয়ে তৈরি করা হয়েছে এবং এতে এমন উপাদান রয়েছে যা বিশেষ সুবিধাপ্রাপ্ত এবং/অথবা অবিশ্বস্ত ইনপুট পরিচালনা করে। MTE এর সাথে প্রস্তাবিত নেটিভ বাইনারিগুলির আপ-টু-ডেট তালিকা Android বিল্ড সিস্টেমের memtag-common.mk ফাইলে পাওয়া যাবে। অতিরিক্তভাবে, বেশ কয়েকটি সিস্টেম অ্যাপ্লিকেশনও অন্তর্ভুক্ত রয়েছে: বর্তমানে, Nfc, ব্লুটুথ এবং সিকিউর এলিমেন্ট। এই বাইনারি এবং অ্যাপ্লিকেশনগুলি ডিফল্টরূপে Async মোডে সক্রিয় থাকে।

বর্তমান সুপারিশ হল ডিফল্ট লক্ষ্য তালিকা ব্যবহার করা (কোন পরিবর্তনের প্রয়োজন নেই)। উপরন্তু, মূল সিস্টেমে BSP এবং OEM সংযোজন মূল্যায়ন করার এবং নিরাপত্তা-সংবেদনশীলগুলির উপর MTE সক্ষম করার সুপারিশ করা হয়।

অ্যাপ্লিকেশন

উপরে তালিকাভুক্ত তিনটি সিস্টেম অ্যাপ্লিকেশন এই সময়ে MTE ব্যবহার করে। MTE সক্ষম করার জন্য একটি তৃতীয় পক্ষের অ্যাপ্লিকেশনের জন্য, এর AndroidManifest.xml android:memtagMode off ছাড়া অন্য একটি মান উল্লেখ করতে হবে। সুতরাং, Geekbench বা AnTuTu-এর মতো সাধারণ বেঞ্চমার্ক স্যুটগুলি MTE-এর সাথে চলে না। যদি কার্নেল MTEও নিষ্ক্রিয় করা থাকে (উপরে kasan=off দেখুন), তাহলে মানদণ্ডগুলি খুব সীমিত কর্মক্ষমতা প্রভাব দেখাবে বলে আশা করা হয়, যদি থাকে।

অন্যান্য অ্যাপগুলির জন্য, Chrome এ MTE সমর্থনের সক্রিয় বিকাশ রয়েছে। Chrome-এর বর্তমান প্লে স্টোর সংস্করণে মেনিফেস্টে memtagMode=async সেটিংস অন্তর্ভুক্ত রয়েছে। এটিও আমাদের প্রত্যাশা যে অ্যান্ড্রয়েড ইকোসিস্টেমের বেশ কয়েকটি নিরাপত্তা-সচেতন অ্যাপ (উদাহরণস্বরূপ, ব্যাঙ্কিং অ্যাপ) শেষ পর্যন্ত একই কাজ করবে। অন্যদিকে, আমরা আশা করি যে কিছু অ্যাপ্লিকেশন যা সর্বোচ্চ সিপিইউ পারফরম্যান্সের দাবি করে যেমন গেমগুলি MTE অক্ষম রাখতে বেছে নেবে।

অন্যান্য মোড

উপরের নির্দেশাবলী সর্বত্র শুধুমাত্র অ্যাসিঙ্ক্রোনাস MTE মোড ব্যবহার করে। হার্ডওয়্যারের উপর নির্ভর করে, অন্যান্য মোড প্রায়, বা ঠিক তত দ্রুত হতে পারে। তারা আরও ভাল ডায়াগনস্টিক এবং কিছুটা শক্তিশালী দুর্বলতা প্রশমন বৈশিষ্ট্য প্রদান করে।

আমরা একটি বা দুটি অন্য কনফিগারেশন পরীক্ষা করার পরামর্শ দিই যে সেগুলি আপনার কর্মক্ষমতা/পাওয়ার প্রয়োজনীয়তার জন্য যথেষ্ট ভাল কিনা। সিস্টেমের প্রতিটি CPU কোরের জন্য /sys/devices/system/cpu/cpu*/mte_tcf_preferred লিখে MTE মোড সেট করা যেতে পারে। উদাহরণ স্বরূপ, sync (বা asymm ) লেখার ফলে যেকোন ইউজারস্পেস প্রসেস হবে যা Async মোডকে নীরবে সিঙ্ক (বা Asymm) এ স্বয়ংক্রিয়ভাবে আপগ্রেড করার অনুরোধ করেছে যখন সেই কোরে চলছে। এই সেটআপটি ডিভাইস বুট করার সময় একটি .rc ফাইলে করা যেতে পারে।

আমরা একটি বা দুটি অন্যান্য কনফিগারেশন পরিমাপ করার পরামর্শ দিই যে তারা আপনার কর্মক্ষমতা এবং পাওয়ার প্রয়োজনীয়তাগুলি পূরণ করে কিনা তা পরীক্ষা করতে। অন্বেষণ করার জন্য কিছু আকর্ষণীয় কনফিগারেশন:

  • সমস্ত কোরে Asymm .
  • বৃহৎ কোর(গুলি)-এ অসীম , অন্যান্য কোরে সিঙ্ক

একটি প্রক্রিয়া Async মোড (সম্ভাব্য স্বয়ংক্রিয়-আপগ্রেড সহ) অনুরোধ করছে তা যাচাই করতে, নিম্নলিখিত লাইনে PR_MTE_TCF_SYNC এবং PR_MTE_TCF_ASYNC উভয়ই রয়েছে কিনা তা পরীক্ষা করুন:

  debuggerd  | head -30 | grep tagged_addr

দুর্ভাগ্যবশত, একটি প্রক্রিয়ার জন্য কার্যকরী মোড দেখার কোন সহজ উপায় নেই; কিন্তু যে কোনো প্রক্রিয়া যা উপরে তালিকাভুক্ত উভয় মান দেখায় তা স্বয়ংক্রিয় আপগ্রেড আচরণের সাপেক্ষে।