اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
عناصر مركّبة على شجرة الأجهزة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
شجرة الأجهزة (DT) هي بنية بيانات تتألف من عقد وسمات مُسمّاة تصف
الأجهزة غير القابلة للاكتشاف. تستخدم نواة النظام، مثل نواة Linux
المستخدَمة في Android، ملفات البيانات الوصفية لتتوافق مع مجموعة كبيرة من إعدادات الأجهزة المستخدَمة
في أجهزة Android. يقدّم مورّدو الأجهزة ملفات مصدر شجرة الجهاز (DTS)
الخاصة بهم، والتي يتم تجميعها في ملف مجموعة بيانات شجرة الجهاز (DTB) باستخدام مجمِّع شجرة الجهاز. ويستخدم بوتloader هذه الملفات بعد ذلك. يحتوي ملف DTB على شجرة جهاز مسطّحة بتنسيق ثنائي.
يتيح تداخل شجرة الجهاز (DTO)
تداخل جدول بيانات DTB مركزي على شجرة الجهاز (كتلة بيانات شجرة الجهاز
للتداخل (DTBO)). يمكن لبرنامج التمهيد الذي يستخدم DTO الاحتفاظ بملف DT الخاص بالنظام على الرقاقة
(SoC) وتطبيق ملف DT خاص بالجهاز بشكل ديناميكي، مع إضافة عقد إلى الشجرة
وإجراء تغييرات على الخصائص في الشجرة الحالية.
التعديلات في إصدار Android 9
في نظام التشغيل Android 9، يجب ألا يعدّل مشغّل الإقلاع
السمات المحدّدة في ملفات DTO قبل تمرير جدول DTB الموحّد إلى النواة.
تحميل شجرة أجهزة
يتضمن تحميل ملف DT في أداة التمهيد عملية إنشاء وإنشاء أقسام وتشغيل.

الشكل 1: التنفيذ المعتاد لتحميل شجرة الجهاز في برنامج الإقلاع
لإنشاء ملف DTB وفلاشه:
1 (أ). استخدِم DTC (dtc
) لتجميع DTS (.dts
) في DTB (.dtb
).
يتم تنسيق DTB كجدول بيانات مسطّح.
1(ب). واملأ ملف .dtb
في موقع يمكن لبرنامج التمهيد الوصول إليه أثناء التشغيل
(يتم توضيح ذلك أدناه).
لتقسيم الذاكرة، حدِّد موقعًا موثوقًا يمكن لبرنامج الإقلاع الوصول إليه أثناء التشغيل
في ذاكرة الفلاش لوضع .dtb
. أمثلة للمواقع:

الشكل 2: ضَع ملف .dtb في قسم التمهيد من خلال إلحاقه بملف image.gz وإرساله على أنّه "kernel" إلى mkbootimg.
|

الشكل 3: ضع ملف .dtb في قسم فريد (مثل قسم dtb).
|
لتحميل ملف DTB وبدء تشغيل النواة:
- تحميل
.dtb
من مساحة التخزين إلى الذاكرة
- بدء تشغيل kernel باستخدام عنوان الذاكرة الخاص بملف DT المحمَّل
ما هي الخطوات التالية؟
توضِّح هذه الصفحة سير عمل نموذجي لبرنامج التمهيد لتحميل ملف DT، كما تقدِّم
قائمة بمصطلحات DT الشائعة. توضِّح الصفحات الأخرى في هذا القسم كيفية
توفير إمكانية استخدام أداة تحميل البرامج وكيفية
تجميع ملف DTO والتحقّق منه و
تحسينه وكيفية
استخدام ملفات DT متعددة. يمكنك
أيضًا الحصول على تفاصيل حول بنية DTO و
تنسيق تقسيم DTO وDTBO المطلوب.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Device tree overlays\n\n\u003cbr /\u003e\n\nA *device tree (DT)* is a data structure of named nodes and properties that\ndescribe non-discoverable hardware. Kernels, such as the Linux kernel\nused in Android, use DTs to support a wide range of hardware configurations used\nby Android-powered devices. Hardware vendors supply their own *device tree\nsource (DTS)* files, which are compiled into the *device tree blob (DTB)* file\nusing the *device tree compiler* . These files are then used by the\nbootloader. The DTB file contains a binary-formatted *flattened device tree*.\n\nA [*device tree overlay (DTO)*](https://lkml.org/lkml/2012/11/5/615)\nenables a central DTB to be overlaid on the DT (a *device tree blob\nfor overlay (DTBO)*). A bootloader using DTO can maintain the system-on-chip\n(SoC) DT and dynamically overlay a device-specific DT, adding nodes to the tree\nand making changes to properties in the existing tree.\n\nUpdates in Android 9 release\n----------------------------\n\nIn Android 9, the bootloader must not modify the\nproperties defined in the DTOs before passing the unified DTB to the kernel.\n\nLoad a DT\n---------\n\nLoading a DT in bootloader involves building, partitioning, and running.\n\n**Figure 1.** Typical implementation for loading device tree in bootloader.\n\n1. To create and flash the DTB:\n\n 1a. Use the DTC (`dtc`) to compile DTS (`.dts`) into a DTB (`.dtb`).\n The DTB is formatted as a flattened DT.\n 1b. Flash the `.dtb` file into a bootloader runtime-accessible location\n (detailed below).\n2. To partition, determine a bootloader runtime-accessible and trusted location\n in flash memory to put `.dtb`. Example locations:\n\n \u003cbr /\u003e\n\n |-----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|\n | **Figure 2.** Put .dtb in a boot partition by appending to image.gz and passing as \"kernel\" to mkbootimg. | **Figure 3.** Put .dtb in a unique partition (for example, dtb partition). |\n\n \u003cbr /\u003e\n\n3. To load the DTB and start the kernel:\n\n - Load `.dtb` from storage into memory.\n - Start kernel using the memory address of the loaded DT.\n\nWhat's next?\n------------\n\nThis page details a typical bootloader workflow for loading a DT and provides\na list of common DT terms. Other pages in this section describe how to\n[implement bootloader support](/docs/core/architecture/dto/implement), how to\n[compile](/docs/core/architecture/dto/compile), verify, and\n[optimize your DTO](/docs/core/architecture/dto/optimize), and how to\n[use multiple DTs](/docs/core/architecture/dto/multiple). You can\nalso get details on [DTO syntax](/docs/core/architecture/dto/syntax) and\nrequired\n[DTO and DTBO partition formatting](/docs/core/architecture/dto/partitions)."]]