O que é o formato de ficheiro DFU?
Arquivos .dfu armazenam dados de atualização de firmware para dispositivos conectados via USB, seguindo a especificação USB Device Firmware Upgrade (USB-IF, revisão 1.1, 2004). O formato é usado principalmente para sistemas embarcados e microcontroladores - STM32, Atmel, Nordic Semiconductor e plataformas semelhantes - em vez de dispositivos de consumo da Apple, apesar de um equívoco comum.
Atualizar o firmware do dispositivo sempre acarreta o risco de danificar o aparelho e deve ser realizado com o máximo cuidado. O firmware é um programa de software incorporado na memória persistente do dispositivo na forma de um sistema operacional completo ou uma camada de controle intermediária. O firmware pode ser atualizado usando arquivos .dfu entregues por meio de uma conexão USB. Um firmware corrompido pode causar danos permanentes ao dispositivo. A maioria dos dispositivos modernos emprega medidas de segurança contra falhas de atualização: o sufixo DFU anexa uma soma de verificação CRC32 a cada arquivo .dfu, permitindo que o dispositivo verifique a integridade antes de aplicar a atualização.
Um arquivo .dfu consiste em uma carga útil de firmware específica do dispositivo seguida por um sufixo DFU obrigatório de 16 bytes no final do arquivo. O sufixo codifica o ID do fornecedor USB, o ID do produto, a versão da especificação DFU (bcdDFU) e o CRC32. A STMicroelectronics estende o formato base com uma variante DfuSe usada pelo STM32CubeProgrammer.
O modo de restauração DFU do iOS da Apple usa o mesmo protocolo USB, mas a Apple distribui o firmware como pacotes .ipsw assinados - não arquivos .dfu brutos.
Segurança e proteção
RISCO: MEDIUMArquivos DFU são imagens de firmware destinadas a serem gravadas em dispositivos de hardware. Gravar um firmware incorreto ou malicioso pode inutilizar (brick) um dispositivo permanentemente (um firmware ruim pode corromper os bootloaders). Grave apenas arquivos .dfu do fabricante oficial do dispositivo. O arquivo em si é inerte como dado; o risco está na execução da operação de gravação. Tenha cuidado com sites que distribuem firmware - sempre verifique com as fontes oficiais do fabricante e cheque o CRC.
Detalhes do formato
em resumo- Modo DFU do Apple iOS - Dispositivos Apple suportam o modo DFU (um estado de dispositivo USB), mas o firmware da Apple é distribuído como arquivos .ipsw assinados, não arquivos .dfu; .dfu não é uma extensão específica da Apple.
Programas que abrem arquivos DFU
Detalhes técnicos
especificação profunda| Localização do sufixo DFU | Últimos 16 bytes do arquivo - a assinatura DFU é um sufixo, não um cabeçalho |
| Magic do sufixo | Bytes de EOF-7 a EOF-5: `0x55`, `0x46`, `0x44` - soletra `DFU` ao contrário (`UFD`) |
| Verificação de integridade | CRC32 sobre todos os bytes do arquivo, exceto o próprio campo final de 4 bytes `dwCRC`; armazenado no sufixo DFU |
| Ordem dos bytes | Little-endian (campos do sufixo DFU conforme a especificação USB-IF) |
| Versão da especificação DFU | Campo `bcdDFU` no sufixo: `0x0100` = DFU 1.0 (1999); `0x011A` = DFU 1.1 (2004) |
| Carga útil do firmware | Binário bruto específico do dispositivo antes do sufixo - sem bytes mágicos padrão; o formato é definido pelo fornecedor |
| ID de fornecedor/produto | Campos `idVendor` e `idProduct` no sufixo identificam a classe do dispositivo USB de destino |
| STMicroelectronics DfuSe | Variante estendida: prefixo ASCII `DfuSe` no início da carga útil; usado pelo STM32CubeProgrammer para firmware STM32 |
| Distinção da Apple | A restauração DFU do iOS usa o mesmo protocolo USB, mas o firmware é distribuído como pacotes `.ipsw` assinados, não arquivos `.dfu` |
| Compressão | Nenhuma na especificação DFU base |
| Uso principal | Microcontroladores embarcados (STM32, Atmel/AVR, Nordic Semiconductor) e outros dispositivos compatíveis com USB-DFU |
| Especificação aberta | USB DFU Specification Revision 1.1 (USB-IF, 2004) define o sufixo; o formato da carga útil do firmware é proprietário do fornecedor |
| Ferramentas multiplataforma | A ferramenta de linha de comando de código aberto `dfu-util` suporta dispositivos DFU padrão no Windows, macOS e Linux |
| Lançado | 1999 (USB DFU specification 1.0 from USB-IF; revision 1.1 published 2004) |
| Versão mais recente | USB DFU Specification Revision 1.1 (2004, USB.org) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.usb.org |
Conversões de DFU
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos DFU.