Drzewo urządzeń (DT) to struktura danych składająca się z nazwanych węzłów i właściwości, które opisują sprzęt niewykrywalny. Jądra, takie jak jądro Linux używane w Androidzie, korzystają z drzew urządzeń, aby obsługiwać szeroką gamę konfiguracji sprzętowych używanych przez urządzenia z Androidem. Dostawcy sprzętu udostępniają własne pliki źródłowe drzewa urządzeń (DTS), które są kompilowane do pliku blob drzewa urządzeń (DTB) za pomocą kompilatora drzewa urządzeń. Pliki te są następnie używane przez program rozruchowy. Plik DTB zawiera spłaszczone drzewo urządzeń w formacie binarnym.
Nakładka drzewa urządzeń (DTO) umożliwia nałożenie centralnego pliku DTB na drzewo urządzeń (blob drzewa urządzeń dla nakładki (DTBO)). Program rozruchowy korzystający z nakładki drzewa urządzeń może zachować drzewo urządzeń układu SoC i dynamicznie nakładać drzewo urządzeń specyficzne dla urządzenia, dodając węzły do drzewa i wprowadzając zmiany we właściwościach w istniejącym drzewie.
Aktualizacje w Androidzie 9
W Androidzie 9 program rozruchowy nie może modyfikować właściwości zdefiniowanych w nakładkach drzewa urządzeń przed przekazaniem ujednoliconego pliku DTB do jądra.
Wczytywanie drzewa urządzeń
Wczytywanie drzewa urządzeń w programie rozruchowym obejmuje tworzenie, dzielenie na partycje i uruchamianie.

Rysunek 1. Typowa implementacja wczytywania drzewa urządzeń w programie rozruchowym.
Aby utworzyć i flashować plik DTB:
1a. Użyj kompilatora drzewa urządzeń (
dtc), aby skompilować plik DTS (.dts) do pliku DTB (.dtb). Plik DTB jest sformatowany jako spłaszczone drzewo urządzeń. 1b. Wgraj plik.dtbdo lokalizacji dostępnej w czasie działania programu rozruchowego (szczegóły poniżej).Aby podzielić pamięć flash na partycje, określ lokalizację w pamięci flash, która jest dostępna w czasie działania programu rozruchowego i zaufana, aby umieścić w niej plik
.dtb. Przykładowe lokalizacje:
Rysunek 2. Umieść plik .dtb w partycji rozruchowej, dołączając go do pliku image.gz i przekazując jako
"kernel" do mkbootimg.
Rysunek 3. Umieść plik .dtb w unikalnej partycji
(np. partycji dtb).Aby wczytać plik DTB i uruchomić jądro:
- Wczytaj plik
.dtbz pamięci masowej do pamięci. - Uruchom jądro, używając adresu pamięci wczytanego drzewa urządzeń.
- Wczytaj plik
Co dalej?
Na tej stronie opisujemy typowy proces wczytywania drzewa urządzeń przez program rozruchowy oraz podajemy listę najczęściej używanych terminów związanych z drzewem urządzeń. Na innych stronach w tej sekcji opisujemy, jak zaimplementować obsługę programu rozruchowego, jak skompilować, zweryfikować i zoptymalizować nakładkę drzewa urządzeń oraz jak używać wielu drzew urządzeń. Możesz też dowiedzieć się więcej o składni nakładki drzewa urządzeń oraz o wymaganym formatowaniu partycji nakładki drzewa urządzeń i blob drzewa urządzeń.