עץ מכשירים (DT) הוא מבנה נתונים של צמתים ותכונות עם שמות שמתארים חומרה שלא ניתן לגלות. ליבות, כמו ליבת Linux שמשמשת ב-Android, משתמשות ב-DT כדי לתמוך במגוון רחב של תצורות חומרה שמשמשות מכשירים מבוססי Android. ספקי חומרה מספקים קובצי מקור של עץ המכשיר (DTS) משלהם, שעוברים קומפילציה לקובץ blob של עץ המכשיר (DTB) באמצעות קומפיילר של עץ המכשיר. הקבצים האלה משמשים את תוכנת האתחול. קובץ ה-DTB מכיל עץ מכשירים שטוח בפורמט בינארי.
שכבת-על של עץ מכשירים (DTO) מאפשרת להוסיף שכבת-על של DTB מרכזי על ה-DT (בלוב של עץ מכשירים לשכבת-על (DTBO)). טוען אתחול שמשתמש ב-DTO יכול לשמור על ה-DT של המערכת על שבב (SoC) ולהוסיף באופן דינמי שכבת-על של DT ספציפי למכשיר, להוסיף צמתים לעץ ולבצע שינויים במאפיינים בעץ הקיים.
עדכונים בגרסה Android 9
ב-Android 9, אסור ל-bootloader לשנות את המאפיינים שמוגדרים ב-DTO לפני העברת ה-DTB המאוחד לליבה.
טעינת DT
טעינת DT בתוכנת האתחול כוללת בנייה, חלוקה למחיצות והרצה.

איור 1. הטמעה אופיינית לטעינת פירוט מבנה המכשיר (DT) בתוכנת האתחול.
כדי ליצור את ה-DTB ולהעביר אותו לזיכרון הפלאש:
1א. משתמשים ב-DTC (
dtc) כדי לקמפל DTS (.dts) ל-DTB (.dtb). ה-DTB מעוצב כ-DT שטוח. 1ב. מבצעים Flash של קובץ.dtbלמיקום שזמין בזמן הריצה של טוען האתחול (מפורט בהמשך).כדי לבצע חלוקה למחיצות, צריך לקבוע מקום בטוח בזיכרון flash שאפשר לגשת אליו בזמן הריצה של תוכנת האתחול, כדי להציב בו את
.dtb. מיקומים לדוגמה:
איור 2. מציבים את .dtb במחיצת אתחול על ידי
הוספה ל-image.gz והעברה כ-
kernel ל-mkbootimg.
איור 3. ממקמים את הקובץ .dtb במחיצה ייחודית
(לדוגמה, מחיצת dtb).כדי לטעון את ה-DTB ולהפעיל את הליבה:
- טעינת
.dtbמהאחסון לזיכרון. - מפעילים את הליבה באמצעות כתובת הזיכרון של ה-DT שנטען.
- טעינת
מה השלב הבא?
בדף הזה מפורט תהליך עבודה טיפוסי של תוכנת אתחול לטעינת DT, ומופיעה רשימה של מונחים נפוצים שקשורים ל-DT. בדפים אחרים בקטע הזה מוסבר איך להטמיע תמיכה בתוכנת אתחול, איך לקמפל, לאמת ולבצע אופטימיזציה של DTO, ואיך להשתמש בכמה DT. אפשר גם לקבל פרטים על התחביר של DTO ועל הפורמט של מחיצות DTO ו-DTBO.