डिवाइस ट्री ओवरले (डीटीओ) का दायरा बढ़ाया जाता है
मौजूदा
फ़्लैट किए गए डिवाइस ट्री (एफ़डीटी) को चालू करके लागू करें
रनटाइम के दौरान कर्नेल में शुरुआती deviceट्री डेटा को बदलने के लिए यूज़रस्पेस
अतिरिक्त ओवरले एफ़डीटी लोड करना, जो ओरिजनल डेटा में बदलाव करते हैं. Android, यह काम नहीं करता
उपयोगकर्तास्पेस से DT BLOB के रनटाइम अपडेट करना ज़रूरी है, लेकिन इसके बजाय इसका सुझाव दिया जाता है
वेंडर, बूटलोडर में deviceट्री पैचिंग को
libfdt
या libufdt
.
Android डीटीओ की सहायता
डीटीओ के लिए Android सहायता, Android के रिलीज़ के हिसाब से अलग-अलग होती है:
- Android 7.x और इससे पहले के वर्शन के लिए, devicetree की सुविधा की ज़रूरत नहीं है सुझाव देना चाहते हैं कि वेंडर, DT BLOB को कर्नेल में कैसे पास करते हैं या और उन्हें स्टोर करते हैं.
- Android 8.x, डिवाइसट्री सपोर्ट का सुझाव देता है, ताकि बोर्ड के हिसाब से काम किया जा सके और सिर्फ़ SoC वाले हिस्से, कर्नेल के अलग-अलग होते हैं.
- Android 9 और इसके बाद के वर्शन के लिए, डिवाइस ट्री ब्लॉब की ज़रूरत होती है ओवरले (DTBO) विभाजन मौजूद होना चाहिए और कम से कम एक डीटीओ लागू होना चाहिए.
डीटीओ के बंटवारे की ज़रूरी शर्तें
ज़्यादातर Android डिवाइस, बिल्ड के समय कर्नेल में DT ब्लॉब जोड़ते हैं और बूटलोडर, कर्नेल से ब्लॉब लोड करता है. हालांकि, DT ब्लॉब इसे सिस्टम-ऑन-चिप (SoC) कर्नेल का हिस्सा माना जाता है. Android के लिए DT BLOB बनाने या सेव करने के लिए ज़रूरी शर्तें. डिवाइस, DT को जोड़ सकते हैं BLOB को कर्नेल में जोड़ा जा सकता है या BLOB को एक अलग हिस्से में स्टोर किया जा सकता है; सिर्फ़ एक शर्त यह है कि बूटलोडर को यह पता हो कि DT ब्लॉब को कैसे और कहां लोड करना है से.
डीटीओ की सुविधा देने के लिए, डिवाइसों में ये होने चाहिए:
- बोर्ड के खास DT ओवरले के लिए हर कर्नेल इमेज के लिए एक DTBO विभाजन और बूटलोडर को यह पता होना चाहिए कि SoC के हिसाब से डीटीबी को कहां और कैसे लोड करना है. कॉन्टेंट बनाने सेगमेंट का साइज़, SoC बनाने के लिए ज़रूरी बदलावों की संख्या पर निर्भर करता है कर्नेल—आने वाले अपडेट के लिए जगह के साथ आकार चुनें; आम तौर पर, सेगमेंट का साइज़ 8 एमबी से ज़्यादा है.
- डीटीओ के पार्टीशन A/B के लिए अपडेट किए गए डिवाइस में बदल सकते हैं. रिकवरी कर्नेल, Android कर्नेल के जैसा ही है, लेकिन A/B डिवाइस के लिए पार्टीशन सेट अप करना ज़रूरी है, ताकि इसे ओवर द एयर के ज़रिए अपडेट किया जा सके (ओटीए) अपडेट. सेगमेंट का साइज़, डिवाइस और उसकी संख्या पर निर्भर करता है मुख्य SoC कर्नेल DT ब्लॉब के ऊपर बदलाव करते हैं.
डीटीओ बूटलोडर के लिए ज़रूरी शर्तें
डीटीओ की सुविधा देने के लिए, बूटलोडर को:
- A/B डिवाइसों के लिए बूट स्लॉट को ध्यान में रखते हुए, यह जानें कि वेंडर के हिसाब से, SoC के हिसाब से DT ब्लॉब (आम तौर पर, कर्नेल इमेज का आखिरी हिस्सा, ब्लॉब के रूप में कर्नेल में जोड़ा जाता है).
- किसी वेंडर के लिए, ओवरले DT ब्लॉब को कैसे और कहां लोड करना है, इसके बारे में जानें तरीका है.
- कंबाइंड डिवाइस पास करने से पहले, मुख्य DT ब्लॉब को ओवरले की मदद से पैच करें ट्री को कर्नेल में जोड़ा जा सकता है.
बूटलोडर में डीटीओ के लिए सहायता जोड़ने के बारे में ज़्यादा जानने के लिए, यहां देखें डिवाइस ट्री ओवरले.