A sobreposição da árvore de dispositivos (DTO, na sigla em inglês) estende-se
atuais
Implementações da Árvore de dispositivos planas (FDT), ativando
espaço do usuário para modificar os dados iniciais da árvore de dispositivos no kernel em tempo de execução ao
carregando FDTs de sobreposição adicionais que alteram os dados originais. O Android não
exigem atualizações de tempo de execução de blobs de DT do espaço do usuário, mas recomenda
que os fornecedores adicionem o patch Devicetree no carregador de inicialização com a ajuda de
libfdt
ou libufdt
.
Suporte a DTO no Android
A compatibilidade do Android com DTOs varia de acordo com a versão do Android:
- O Android 7.x e versões anteriores não exigem suporte a devicetree e não recomendações sobre como os fornecedores passam blobs de DT para o kernel ou onde e são armazenados.
- O Android 8.x recomenda suporte a devicetree para manter as especificações da placa e Partes separadas do kernel somente SoC.
- O Android 9 e versões mais recentes exigem um blob da árvore de dispositivos de sobreposição (DTBO) esteja presente e pelo menos uma DTO a ser aplicada.
Requisitos de particionamento de DTO
A maioria dos dispositivos Android anexa o blob da DT ao kernel no momento da compilação e aos o carregador de inicialização carrega o blob do kernel. No entanto, como os blobs da DT são considerada parte do kernel system on chip (SoC), o Android não tem um para criar ou armazenar blobs de DT. Os dispositivos podem anexar a transferência de dados blob no kernel ou armazenar o blob em uma partição separada; o único é que o carregador de inicialização saiba como e onde carregar o blob da DT. se originou.
Para oferecer suporte a DTO, os dispositivos precisam ter:
- Uma partição de DTBO por imagem do kernel para uma sobreposição de DT específica da placa e o carregador de inicialização precisa saber onde e como carregar o DTB específico de SoC. A o tamanho da partição depende do número de mudanças necessárias para fazer o SoC kernel – escolha um tamanho com espaço para crescer para atualizações futuras; normalmente, uma O tamanho de partição de 8 MB é mais do que suficiente.
- Partições de DTO atualizadas para A/B dispositivos. O kernel de recuperação é igual ao kernel do Android, mas o deve ser configurada para dispositivos A/B para que possa ser atualizada via OTA (OTA). O tamanho da partição depende do dispositivo e do número de mudanças em cima do blob de DT do kernel principal do SoC.
Requisitos do carregador de inicialização de DTO
Para oferecer suporte a DTO, o carregador de inicialização precisa:
- Saiba como e onde (considerando o slot de inicialização dos dispositivos A/B) carregar os blob de DT específico de SoC de uma forma específica do fornecedor (normalmente extraído de fim da imagem do kernel à medida que os blobs são anexados ao kernel).
- Saber como e onde carregar o blob de DT de sobreposição a partir de um objeto específico do fornecedor de um jeito fácil.
- Aplicar um patch no blob principal da DT com a sobreposição antes de transmitir o dispositivo combinado árvore ao kernel.
Para mais detalhes sobre como adicionar suporte a DTO no carregador de inicialização, consulte Sobreposições da árvore de dispositivos: