ডিভাইস ট্রি ওভারলে (ডিটিও) বিদ্যমান ফ্ল্যাটেন্ড ডিভাইস ট্রি (এফডিটি) বাস্তবায়নকে প্রসারিত করে রানটাইমে কার্নেলে প্রাথমিক ডিভাইস ট্রি ডেটা পরিবর্তন করার জন্য ব্যবহারকারীর স্থান সক্ষম করে অতিরিক্ত ওভারলে এফডিটি লোড করে যা মূল ডেটা সংশোধন করে। অ্যান্ড্রয়েডের জন্য ইউজারস্পেস থেকে ডিটি ব্লবগুলির রানটাইম আপডেটের প্রয়োজন হয় না, তবে এর পরিবর্তে বিক্রেতারা libfdt
বা libufdt
এর সাহায্যে বুটলোডারে ডিভাইসট্রি প্যাচিং যোগ করার পরামর্শ দেয়।
অ্যান্ড্রয়েড ডিটিও সমর্থন
ডিটিও-এর জন্য অ্যান্ড্রয়েড সমর্থন অ্যান্ড্রয়েড রিলিজ দ্বারা পরিবর্তিত হয়:
- অ্যান্ড্রয়েড 7.x এবং তার আগের ডিভাইস ট্রি সমর্থনের প্রয়োজন হয় না এবং বিক্রেতারা কীভাবে কার্নেলে ডিটি ব্লব পাস করে বা তারা সেগুলি কোথায় সংরক্ষণ করে তার জন্য সুপারিশ প্রদান করে না।
- Android 8.x কার্নেলের বোর্ড-নির্দিষ্ট এবং SoC-শুধুমাত্র অংশগুলিকে আলাদা রাখতে ডিভাইসট্রি সমর্থনের সুপারিশ করে।
- অ্যান্ড্রয়েড 9 এবং উচ্চতরের জন্য একটি ডিভাইস ট্রি ব্লব ওভারলে (DTBO) পার্টিশন উপস্থিত থাকতে হবে এবং কমপক্ষে একটি DTO প্রয়োগ করতে হবে।
ডিটিও পার্টিশনের প্রয়োজনীয়তা
বেশিরভাগ অ্যান্ড্রয়েড ডিভাইস বিল্ড টাইমে কার্নেলে ডিটি ব্লব যুক্ত করে এবং বুটলোডার কার্নেল থেকে ব্লব লোড করে। যাইহোক, যেহেতু ডিটি ব্লবগুলিকে সিস্টেম-অন-চিপ (এসওসি) কার্নেলের অংশ হিসাবে বিবেচনা করা হয়, তাই কীভাবে ডিটি ব্লবগুলি তৈরি বা সংরক্ষণ করা যায় তার জন্য অ্যান্ড্রয়েডের কোনও নির্দিষ্ট প্রয়োজনীয়তা নেই৷ ডিভাইসগুলি কার্নেলের সাথে DT ব্লব যুক্ত করতে পারে বা একটি পৃথক পার্টিশনে ব্লব সংরক্ষণ করতে পারে; শুধুমাত্র প্রয়োজনীয়তা হল বুটলোডার জানে কিভাবে এবং কোথা থেকে DT ব্লব লোড করতে হবে।
DTO সমর্থন করার জন্য, ডিভাইসগুলির থাকা উচিত:
- একটি বোর্ড-নির্দিষ্ট ডিটি ওভারলে-এর জন্য কার্নেল ইমেজ প্রতি একটি DTBO পার্টিশন এবং বুটলোডারকে অবশ্যই SoC-নির্দিষ্ট DTB কোথায় এবং কীভাবে লোড করতে হবে তা জানতে হবে। পার্টিশনের আকার SoC কার্নেল তৈরি করার জন্য প্রয়োজনীয় পরিবর্তনের সংখ্যার উপর নির্ভর করে—ভবিষ্যত আপডেটের জন্য রুম সহ একটি আকার নির্বাচন করুন; সাধারণত, একটি 8 MB পার্টিশনের আকার যথেষ্ট বেশি।
- A/B ডিভাইসের জন্য DTO পার্টিশন আপডেট করা হয়েছে । পুনরুদ্ধার কার্নেলটি অ্যান্ড্রয়েড কার্নেলের মতোই, তবে পার্টিশনটি অবশ্যই A/B ডিভাইসের জন্য সেট আপ করা উচিত যাতে এটি ওভার-দ্য-এয়ার (OTA) আপডেটের মাধ্যমে আপডেট করা যায়। পার্টিশনের আকার ডিভাইস এবং প্রধান SoC কার্নেল DT ব্লবের উপরে পরিবর্তনের সংখ্যার উপর নির্ভর করে।
DTO বুটলোডার প্রয়োজনীয়তা
DTO সমর্থন করার জন্য, বুটলোডারের উচিত:
- কীভাবে এবং কোথায় (A/B ডিভাইসের বুট স্লট বিবেচনা করে) একটি বিক্রেতা-নির্দিষ্ট উপায়ে SoC-নির্দিষ্ট DT ব্লব লোড করতে হয় (সাধারণত কার্নেলের সাথে ব্লব যুক্ত করা হয় বলে কার্নেলের চিত্রের শেষ থেকে বের করা হয়)।
- বিক্রেতা-নির্দিষ্ট উপায়ে ওভারলে ডিটি ব্লব কীভাবে এবং কোথায় লোড করবেন তা জানুন।
- কার্নেলে সম্মিলিত ডিভাইস ট্রি পাস করার আগে ওভারলে দিয়ে প্রধান DT ব্লব প্যাচ করুন।
বুটলোডারে DTO-এর জন্য সমর্থন যোগ করার বিষয়ে আরও বিশদ বিবরণের জন্য, Device Tree Overlays দেখুন।