O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Sobreposições de árvore de dispositivos

Uma árvore de dispositivo (DT) é uma estrutura de dados de nós nomeados e propriedades que descrevem hardware não detectável. Os sistemas operacionais, como o kernel Linux usado no Android, usam DTs para oferecer suporte a uma ampla variedade de configurações de hardware usadas por dispositivos Android. Os fornecedores de hardware fornecem seus próprios arquivos de origem de DT, que o Linux então compila no arquivo Device Tree Blob (DTB) usado pelo bootloader.

A sobreposição de árvore de dispositivos (DTO) permite que uma árvore de dispositivos blob central (DTB) a ser sobreposta sobre a árvore de dispositivos. Um bootloader usando DTO pode manter o DT system-on-chip (SoC) e sobrepor dinamicamente um DT específico do dispositivo, adicionando nós à árvore e fazendo alterações nas propriedades na árvore existente.

Esta página detalha um fluxo de trabalho típico do carregador de inicialização para carregar uma DT e fornece uma lista de termos comuns da DT. Outras páginas desta seção descrevem como implementar bootloader suporte para DTO , como compilar , verificar e otimizar a sua implementação DTO , e como usar vários DTs . Você também pode obter detalhes sobre a sintaxe DTO e exigiu partição DTO / DTBO formatação .

Atualizações na versão do Android 9

No Android 9, o carregador de inicialização não deve modificar as propriedades definidas nas sobreposições da árvore do dispositivo antes de passar o blob da árvore do dispositivo unificado para o kernel.

Carregando uma árvore de dispositivos

Carregar uma árvore de dispositivo no bootloader envolve construção, particionamento e execução.

Figura 1. A execução típica para a árvore dispositivo de carregamento no carregador de inicialização.
  1. Construir:
    • Use o compilador árvore de dispositivos ( dtc ) para compilar fonte árvore de dispositivos ( .dts ) em um blob árvore de dispositivos ( .dtb ), formatado como uma árvore de dispositivos achatada.
    • Piscar o .dtb arquivo em um local de execução acessível bootloader (detalhada abaixo).
  2. Para partição, determinar um bootloader runtime-acessível e local confiável na memória flash para colocar .dtb . Locais de exemplo:
    Partição de inicialização
    Figura 2. Coloque .dtb na partição de boot pelo anexação image.gz e passando como " kernel " para mkbootimg .
    Partição Única
    Figura 3. Coloque .dtb em uma partição único (por exemplo dtb partição).
  3. Para correr:
    • Carregar .dtb do armazenamento na memória.
    • Inicie o kernel com o endereço de memória do DT carregado.

Terminologia

Esta seção usa os seguintes termos da árvore de dispositivos:

DT Árvore de Dispositivos
DTB Device Tree Blob
DTBO Blob da árvore de dispositivos para sobreposição
DTC Compilador de árvore de dispositivo
DTO Sobreposição de árvore de dispositivo
DTS Fonte da árvore do dispositivo
FDT Dispositivo achatada Árvore, um formato binário contido em um .dtb arquivo blob