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

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