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

- Строить:
- Используйте компилятор дерева устройств (
dtc
) для компиляции источника дерева устройств (.dts
) в большой двоичный.dtb
дерева устройств (.dtb
), отформатированный как.dtb
дерево устройств. -
.dtb
файл.dtb
в место, доступное во время выполнения загрузчика (подробно описано ниже).
- Используйте компилятор дерева устройств (
- Для создания разделов определите доступное во время выполнения загрузчика и
.dtb
место во флеш-памяти, чтобы поместить.dtb
. Примеры мест:Загрузочный раздел Рисунок 2. Поместите .dtb
в загрузочный раздел, добавив кimage.gz
и передав как «kernel
» вmkbootimg
.Уникальный раздел Рисунок 3. Поместите .dtb
в уникальный раздел (например, разделdtb
). - Бежать:
- Загрузите
.dtb
из хранилища в память. - Запустить ядро по адресу памяти загруженного DT.
- Загрузите
Терминология
В этом разделе используются следующие термины дерева устройств:
DT | Дерево устройств |
---|---|
DTB | BLOB-объект дерева устройств |
DTBO | BLOB-объект дерева устройств для наложения |
DTC | Компилятор дерева устройств |
DTO | Наложение дерева устройств |
DTS | Источник дерева устройств |
FDT | Flattened Device Tree, двоичный формат, содержащийся в файле .dtb |