MTE বুটলোডার সমর্থন

Android 13 বুটলোডারের সাথে অনুরোধ করা MTE মোড যোগাযোগ করতে ব্যবহারকারী-স্পেসের জন্য একটি ABI প্রবর্তন করে। এটি এমন ডিভাইসগুলিতে MTE সক্ষম করতে ব্যবহার করা যেতে পারে যেগুলিতে হার্ডওয়্যার সমর্থন রয়েছে কিন্তু ডিফল্টরূপে MTE সক্ষম করে শিপ করা হয় না, বা এটির সাথে শিপ করা ডিভাইসগুলিতে MTE অক্ষম করতে।

বুটলোডার সমর্থন

এই ABI সমর্থন করার জন্য, আপনার বুটলোডারকে misc পার্টিশন থেকে misc_memtag_message ( bootloader_message.h এ সংজ্ঞায়িত) পড়তে হবে। যদি একটি বৈধ misc_memtag_message পাওয়া যায় ( MISC_VIRTUAL_AB_MAGIC_HEADER মেলে, এবং সংস্করণ নম্বর সমর্থিত), বুটলোডার গণনা করে

memtag = (default_memtag && !(misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_OFF)) ||
      misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG ||
      misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_ONCE

memtag_kernel = misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_KERNEL ||
      misc.memtag_mode & MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE

default_memtag হল SKU-এর জন্য ডিফল্ট মেমট্যাগ অন/অফ সেটিং। memtag সত্য হলে, বুটলোডার MTE ট্যাগ সংরক্ষণ সেট আপ করে, নিম্ন ব্যতিক্রম স্তরে ট্যাগ চেক সক্ষম করে, এবং ট্যাগ সংরক্ষিত অঞ্চলটি DT এর মাধ্যমে কার্নেলের সাথে যোগাযোগ করে। memtag মিথ্যা হলে, বুটলোডার কার্নেল কমান্ড লাইনে arm64.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 দিয়ে তাদের অ্যাপ পরীক্ষা করতে চায়। MTE বিকাশকারী বিকল্পের স্ক্রিনশট।

সিস্টেম সম্পত্তি

উন্নত ব্যবহারের জন্য, সিস্টেম প্রপার্টি arm64.memtag.bootctl নিম্নলিখিত মানগুলির একটি কমা দ্বারা পৃথক করা তালিকা নিতে পারে:

  • memtag: অবিরতভাবে ব্যবহারকারী-স্পেস MTE সক্ষম করুন (সেট MISC_MEMTAG_MODE_MEMTAG )
  • মেমট্যাগ-একবার: ইউজার-স্পেস MTE একবার সক্ষম করুন (সেট MISC_MEMTAG_MODE_MEMTAG_ONCE )
  • memtag-kernel: কার্নেল-স্পেস MTE সক্ষম করুন (সেট MISC_MEMTAG_MODE_MEMTAG_KERNEL )
  • memtag-kernel-one: একবার কার্নেল-স্পেস MTE সক্ষম করুন ( MISC_MEMTAG_MODE_MEMTAG_KERNEL_ONCE )
  • memtag-off: MTE অক্ষম করুন (সেট MISC_MEMTAG_MODE_MEMTAG_OFF )

নতুন সেটিং কার্যকর হওয়ার জন্য সিস্টেমটিকে পুনরায় বুট করতে হবে (যেমন এটি বুটলোডার দ্বারা প্রয়োগ করা হয়)।