डीटीओ लागू करें

डिवाइस ट्री ओवरले (डीटीओ) को लागू करने का मतलब है, डिवाइस ट्री (डीटी), बिल्डिंग, सेगमेंट बनाना, और उसे चलाना. अपना काम लागू करने के बाद, आपको दोनों डीटी के बीच काम करता है और यह पक्का करने के लिए रणनीति तय करनी होती है कि सुरक्षित रखा जा सकता है.

DT को विभाजित करें

DT को दो भागों में विभाजित करके शुरू करें:

  • मुख्य DT. सिर्फ़ SoC वाला हिस्सा और डिफ़ॉल्ट कॉन्फ़िगरेशन, SoC वेंडर से मिला.
  • ओवरले DT. डिवाइस के हिसाब से कॉन्फ़िगरेशन, जो इनसे मिला है: ओडीएम/ओईएम.

डीटी को भाग देने के बाद, आपको यह पक्का करना होगा कि ये मुख्य ग्रुप के साथ काम करते हों DT और ओवरले डीटी को ओवरले करें, ताकि मुख्य डीटी और ओवरले डीटी को मर्ज किया जा सके डिवाइस के लिए DT. डीटीओ के फ़ॉर्मैट और नियमों की जानकारी के लिए, इसे देखें डीटीओ सिंटैक्स. जानकारी के लिए एकाधिक DT, देखें एक से ज़्यादा डीटी.

मुख्य टास्क बनाएं और डीटी ओवरले करें

मुख्य DT बनाने के लिए:

  1. मुख्य DT .dts को .dtb फ़ाइल में कंपाइल करें.
  2. .dtb फ़ाइल को ऐसे पार्टीशन में फ़्लैश करें जिसे बूटलोडर रनटाइम ऐक्सेस कर सकता है (इस बारे में ज़्यादा जानकारी [पार्टिशन डीटीएस](#पार्टिशन) में दी गई है).

ओवरले DT बनाने के लिए:

  1. ओवरले DT .dts को .dtbo फ़ाइल में कंपाइल करें. हालांकि यह फ़ाइल फ़ॉर्मैट वही है जो .dtb फ़ाइल एक समान DT है, तो भिन्न फ़ाइल एक्सटेंशन इसे मुख्य DT.
  2. .dtbo फ़ाइल को ऐसे पार्टीशन में फ़्लैश करें जिसे बूटलोडर रनटाइम ऐक्सेस कर सकता है (इस बारे में ज़्यादा जानकारी [पार्टिशन डीटीएस](#पार्टिशन) में दी गई है).

डीटीसी के साथ कंपाइल करने और होस्ट पर डीटीओ के नतीजों की पुष्टि करने के बारे में जानकारी के लिए, यहां देखें कंपाइल करके पुष्टि करें.

विभाजन DT

फ़्लैश में बूटलोडर के रनटाइम को ऐक्सेस करने लायक और भरोसेमंद जगह तय करें .dtb और .dtbo रखने के लिए मेमोरी.

मुख्य DT के लिए जगहों के उदाहरण:

  • बूट पार्टीशन का हिस्सा, कर्नेल में जोड़ा गया (image.gz)
  • खास पार्टिशन (dtb) में अलग DT ब्लॉब (.dtb)

ओवरले डीटी के लिए जगहों के उदाहरण:

पहला डायग्राम. .dtbo को किसी खास विभाजन में डालें, जैसे कि dtbo विभाजन.

दूसरी इमेज. .dtbo को odm पार्टीशन में डालें (ऐसा सिर्फ़ तब करें, जब आपके बूटलोडर में odm विभाजन के फ़ाइल सिस्टम से डेटा लोड करने की सुविधा देता है).

ध्यान दें: साइज़ ओवरले डीटी सेगमेंट, डिवाइस और उसमें किए जाने वाले बदलावों की संख्या पर निर्भर करता है आपके पास इन्हें हटाने का विकल्प है. आम तौर पर, 8 एमबी काफ़ी ज़्यादा होते हैं. साथ ही, स्टोरेज में भी जगह होती है बढ़ाया जा सकता है.

उन डिवाइसों के लिए जो Google Play पर काम करते हैं सीमलेस (A/B) अपडेट, A/B मुख्य DT और ओवरले DT विभाजन:

तीसरी इमेज. DTBO विभाजन A/B, उदाहरण 1.

चौथी इमेज. DTBO विभाजन A/B, उदाहरण 2.

बूटलोडर में चलाएं

चलाने के लिए:

पांचवी इमेज. बूटलोडर में डीटीओ के लिए आम तौर पर लागू होने वाला रनटाइम.

  1. .dtb को स्टोरेज से मेमोरी में लोड करें.
  2. .dtbo को स्टोरेज से मेमोरी में लोड करें.
  3. ओवरले .dtb को .dtbo के साथ मर्ज किया गया DT.
  4. मर्ज किए गए DT का मेमोरी पता दिया गया कर्नेल शुरू करें.

अन्य डिवाइसों के साथ डिवाइस के काम करने की क्षमता बनाए रखना

SoC वेंडर के मुख्य डीटीबी को डीटीबीओ के लिए एपीआई प्लैटफ़ॉर्म माना जाता है. इस तारीख के बाद DT को SoC-सामान्य हिस्से और डिवाइस के हिसाब से खास हिस्से में अलग करना, आने वाले समय में, आपको ये दो हिस्से साथ-साथ काम करने वाले होने चाहिए. इनमें ये शामिल हैं:

  • मुख्य डीटी में DT की परिभाषा. उदाहरण के लिए, नोड, प्रॉपर्टी, लेबल. मुख्य डीटी की परिभाषा में कोई भी बदलाव, ओवरले में बदलाव को ट्रिगर कर सकता है डीटी. उदाहरण के लिए, मुख्य DT में नोड का नाम ठीक करने के लिए, "ALIAS" तय करें उसे लेबल करो मूल नोड नाम पर मैप करता है (ओवरले डीटी में बदलाव से बचने के लिए).
  • डीटी स्टोर की जगह का ओवरले. उदाहरण के लिए, विभाजन का नाम, स्टोर फ़ॉर्मैट.

सुरक्षा पक्की करें

बूटलोडर को यह पक्का करना होगा कि डीटीबी या डीटीबीओ सुरक्षित है, इसमें कोई बदलाव नहीं किया गया है, और इसमें कोई गड़बड़ी नहीं है. डीटीबी या डीटीबीओ को सुरक्षित करने के लिए, किसी भी तरीके का इस्तेमाल किया जा सकता है. उदाहरण के लिए, बूट इमेज हस्ताक्षर या VBoot 1.0 वर्शन में मौजूद है या एवीबी HASH फ़ुटर (VBoot 2.0).

  • अगर डीटीबी या डीटीबीओ किसी यूनीक पार्टीशन में है, तो उस सेगमेंट को AVB की ट्रस्ट चेन. ट्रस्ट चेन, हार्डवेयर-सुरक्षित रूट से शुरू होती है बूटलोडर पर जाता है और उस पर जाता है. इससे इंटेग्रिटी और प्रामाणिकता की पुष्टि की जाती है DTB या DTBO विभाजन का.
  • अगर डीटीबी या डीटीबीओ किसी मौजूदा सेगमेंट में है (जैसे कि odm विभाजन), वह विभाजन AVB की ट्रस्ट चेन में होना चाहिए. (DTBO का बंटवारा सार्वजनिक पासकोड को odm पार्टीशन के साथ शेयर किया जा सकता है).

ज़्यादा जानकारी के लिए, देखें पुष्टि हो चुकी है चालू करें.