¿Qué es el formato de archivo DFU?
Los archivos .dfu almacenan datos de actualización de firmware para dispositivos conectados por USB, siguiendo la especificación USB Device Firmware Upgrade (USB-IF, revisión 1.1, 2004). El formato se utiliza principalmente para sistemas embebidos y microcontroladores -STM32, Atmel, Nordic Semiconductor y plataformas similares- en lugar de dispositivos de consumo de Apple, a pesar de un error conceptual común.
Actualizar el firmware de un dispositivo siempre conlleva el riesgo de dañarlo y debe realizarse con sumo cuidado. El firmware es un programa de software embebido en la memoria persistente del dispositivo en forma de un sistema operativo completo o una capa de control intermedia. El firmware se puede actualizar mediante archivos .dfu entregados a través de una conexión USB. Un firmware dañado puede causar daños permanentes al dispositivo. La mayoría de los dispositivos modernos emplean medidas de seguridad contra fallos de actualización: el sufijo DFU añade una suma de comprobación CRC32 a cada archivo .dfu, lo que permite al dispositivo verificar la integridad antes de aplicar la actualización.
Un archivo .dfu consta de una carga útil de firmware específica del dispositivo seguida de un sufijo DFU obligatorio de 16 bytes al final del archivo. El sufijo codifica el ID del proveedor USB, el ID del producto, la versión de la especificación DFU (bcdDFU) y el CRC32. STMicroelectronics extiende el formato base con una variante DfuSe utilizada por STM32CubeProgrammer.
El modo de restauración DFU de iOS de Apple utiliza el mismo protocolo USB, pero Apple distribuye el firmware como paquetes .ipsw firmados, no como archivos .dfu puros.
Seguridad y protección
RIESGO: MEDIUMLos archivos DFU son imágenes de firmware destinadas a ser flasheadas en dispositivos de hardware. Flashear un firmware incorrecto o malicioso puede dejar un dispositivo permanentemente inutilizable (un firmware defectuoso puede corromper los cargadores de arranque). Solo flashee archivos .dfu del fabricante oficial del dispositivo. El archivo en sí es inerte como dato; el riesgo reside en ejecutar la operación de flasheo. Tenga cuidado con los sitios web que distribuyen firmware: verifique siempre con las fuentes oficiales del fabricante y compruebe el CRC.
Detalles del formato
en pocas palabras- Modo DFU de Apple iOS - Los dispositivos Apple admiten el modo DFU (un estado del dispositivo USB), pero el firmware de Apple se distribuye como archivos .ipsw firmados, no como archivos .dfu; .dfu no es una extensión específica de Apple.
Programas que abren archivos DFU
Detalles técnicos
especificación profunda| Ubicación del sufijo DFU | Últimos 16 bytes del archivo - la firma DFU es un sufijo, no un encabezado |
| Magia del sufijo | Bytes en EOF-7 a EOF-5: `0x55`, `0x46`, `0x44` - deletrea `DFU` a la inversa (`UFD`) |
| Comprobación de integridad | CRC32 sobre todos los bytes del archivo excepto el propio campo `dwCRC` final de 4 bytes; almacenado en el sufijo DFU |
| Orden de bytes | Little-endian (campos del sufijo DFU según la especificación USB-IF) |
| Versión de especificación DFU | Campo `bcdDFU` en el sufijo: `0x0100` = DFU 1.0 (1999); `0x011A` = DFU 1.1 (2004) |
| Carga útil de firmware | Binario puro específico del dispositivo antes del sufijo - sin bytes mágicos estándar; el formato lo define el proveedor |
| ID de proveedor/producto | Los campos `idVendor` e `idProduct` en el sufijo identifican la clase de dispositivo USB de destino |
| STMicroelectronics DfuSe | Variante extendida: prefijo ASCII `DfuSe` al inicio de la carga útil; utilizado por STM32CubeProgrammer para firmware STM32 |
| Distinción de Apple | La restauración DFU de iOS utiliza el mismo protocolo USB, pero el firmware se distribuye como paquetes `.ipsw` firmados, no como archivos `.dfu` |
| Compresión | Ninguna en la especificación DFU base |
| Uso principal | Microcontroladores embebidos (STM32, Atmel/AVR, Nordic Semiconductor) y otros dispositivos con capacidad USB-DFU |
| Especificación abierta | La revisión 1.1 de la especificación USB DFU (USB-IF, 2004) define el sufijo; el formato de la carga útil del firmware es propiedad del proveedor |
| Herramientas multiplataforma | La herramienta de línea de comandos de código abierto `dfu-util` es compatible con dispositivos DFU estándar en Windows, macOS y Linux |
| Lanzado | 1999 (USB DFU specification 1.0 from USB-IF; revision 1.1 published 2004) |
| Última versión | USB DFU Specification Revision 1.1 (2004, USB.org) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.usb.org |
Conversiones de DFU
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos DFU.