Дерево устройств (DT) — это структура данных, состоящая из именованных узлов и свойств, описывающих необнаруживаемое оборудование. Ядра, такие как ядро Linux, используемое в Android, используют DT для поддержки широкого спектра конфигураций оборудования, используемых устройствами на базе Android. Производители оборудования предоставляют собственные исходные файлы дерева устройств (DTS) , которые компилируются в файл дерева устройств (DTB) с помощью компилятора дерева устройств . Затем эти файлы используются загрузчиком. Файл DTB содержит двоично-форматированное плоское дерево устройств .
Наложение дерева устройств (DTO) позволяет накладывать центральное дерево устройств (DT) на дерево устройств (DT) ( блок дерева устройств для наложения (DTBO) ). Загрузчик, использующий DTO, может поддерживать дерево устройств системы на кристалле (SoC) и динамически накладывать дерево устройств, специфичное для конкретного устройства, добавляя узлы в дерево и внося изменения в свойства существующего дерева.
Обновления в Android 9
В Android 9 загрузчик не должен изменять свойства, определенные в DTO, до передачи унифицированного DTB ядру.
Загрузить DT
Загрузка DT в загрузчик включает в себя сборку, разметку диска и запуск.

Рисунок 1. Типичная реализация загрузки дерева устройств в загрузчике.
Для создания и прошивки DTB:
1a. Используйте DTC (
dtc) для компиляции DTS (.dts) в DTB (.dtb). DTB имеет формат сглаженного DT. 1b. Прошейте файл.dtbв место, доступное для среды выполнения загрузчика (подробности ниже).Для разметки необходимо определить доступное для загрузчика и надежное место во флэш-памяти, куда следует поместить файл
.dtb. Примеры мест расположения:
Рисунок 2. Поместите файл .dtb в загрузочный раздел следующим образом:
добавление к image.gz и передача в качестве
"kernel" to mkbootimg.
Рисунок 3. Поместите файл .dtb в отдельный раздел.
(например, раздел dtb).Для загрузки DTB и запуска ядра:
- Загрузить файл
.dtbиз хранилища в память. - Запуск ядра с использованием адреса памяти загруженного DT.
- Загрузить файл
Что дальше?
На этой странице подробно описан типичный рабочий процесс загрузчика для загрузки DT и приведен список распространенных терминов, связанных с DT. На других страницах этого раздела описывается, как реализовать поддержку загрузчика , как скомпилировать , проверить и оптимизировать ваш DTO , а также как использовать несколько DT . Вы также можете получить подробную информацию о синтаксисе DTO и необходимом форматировании разделов DTO и DTBO .