Wat is het DFU-bestandsformaat?
.dfu-bestanden slaan firmware-updategegevens op voor via USB aangesloten apparaten, volgens de USB Device Firmware Upgrade-specificatie (USB-IF, revisie 1.1, 2004). Het formaat wordt voornamelijk gebruikt voor embedded systemen en microcontrollers - STM32, Atmel, Nordic Semiconductor en vergelijkbare platforms - in plaats van consumentenapparaten van Apple, ondanks een veelvoorkomend misverstand.
Het bijwerken van apparaatfirmware brengt altijd een risico op beschadiging van het apparaat met zich mee en moet met de grootste zorg worden uitgevoerd. Firmware is een softwareprogramma dat is ingebed in het permanente geheugen van het apparaat in de vorm van een volledig besturingssysteem of een tussenliggende besturingslaag. Firmware kan worden bijgewerkt met behulp van .dfu-bestanden die via een USB-verbinding worden geleverd. Beschadigde firmware kan permanente schade aan het apparaat veroorzaken. De meeste moderne apparaten maken gebruik van beveiligingsmaatregelen tegen mislukte updates: het DFU-achtervoegsel voegt een CRC32-checksum toe aan elk .dfu-bestand, waardoor het apparaat de integriteit kan verifiëren voordat de update wordt toegepast.
Een .dfu-bestand bestaat uit een apparaatspecifieke firmware-payload gevolgd door een verplicht 16-byte DFU-suffix aan het allerlaatste einde van het bestand. Het suffix codeert de USB-leveranciers-ID, product-ID, DFU-specificatieversie (bcdDFU) en de CRC32. STMicroelectronics breidt het basisformaat uit met een DfuSe-variant die wordt gebruikt door STM32CubeProgrammer.
De iOS DFU-herstelmodus van Apple gebruikt hetzelfde USB-protocol, maar Apple distribueert firmware als ondertekende .ipsw-pakketten - geen onbewerkte .dfu-bestanden.
Beveiliging & veiligheid
RISICO: MEDIUMDFU-bestanden zijn firmware-images die bedoeld zijn om naar hardwareapparaten te worden geflasht. Het flashen van onjuiste of kwaadaardige firmware kan een apparaat permanent onbruikbaar maken (slechte firmware kan bootloaders beschadigen). Flash alleen .dfu-bestanden van de officiële fabrikant van het apparaat. Het bestand zelf is inert als gegevens; het risico zit in het uitvoeren van de flash-bewerking. Wees voorzichtig met websites die firmware distribueren - verifieer altijd aan de hand van officiële bronnen van de fabrikant en controleer de CRC.
Formaatdetails
in een notendop- Apple iOS DFU-modus - Apple-apparaten ondersteunen de DFU-modus (een USB-apparaatstatus), maar Apple-firmware wordt gedistribueerd als ondertekende .ipsw-bestanden, niet als .dfu-bestanden; .dfu is geen Apple-specifieke extensie.
Programma's die DFU-bestanden openen
Technische details
diepe specificaties| Locatie DFU-suffix | Laatste 16 bytes van het bestand - de DFU-handtekening is een suffix, geen header |
| Suffix magic | Bytes op EOF-7 tot EOF-5: `0x55`, `0x46`, `0x44` - spelt `DFU` in omgekeerde volgorde (`UFD`) |
| Integriteitscontrole | CRC32 over alle bestandsbytes behalve het uiteindelijke 4-byte `dwCRC`-veld zelf; opgeslagen in het DFU-suffix |
| Byte-volgorde | Little-endian (DFU-suffixvelden volgens USB-IF-specificatie) |
| DFU-specificatieversie | `bcdDFU`-veld in suffix: `0x0100` = DFU 1.0 (1999); `0x011A` = DFU 1.1 (2004) |
| Firmware-payload | Apparaatspecifieke onbewerkte binaire gegevens vóór het suffix - geen standaard magic bytes; formaat is door de leverancier gedefinieerd |
| Leveranciers-/product-ID | `idVendor`- en `idProduct`-velden in het suffix identificeren de doel-USB-apparaatklasse |
| STMicroelectronics DfuSe | Uitgebreide variant: `DfuSe` ASCII-voorvoegsel aan het begin van de payload; gebruikt door STM32CubeProgrammer voor STM32-firmware |
| Onderscheid met Apple | iOS DFU-herstel gebruikt hetzelfde USB-protocol, maar firmware wordt gedistribueerd als ondertekende `.ipsw`-pakketten, niet als `.dfu`-bestanden |
| Compressie | Geen in de basis DFU-specificatie |
| Primair gebruik | Embedded microcontrollers (STM32, Atmel/AVR, Nordic Semiconductor) en andere USB-DFU-compatibele apparaten |
| Open specificatie | USB DFU Specification Revision 1.1 (USB-IF, 2004) definieert het suffix; het formaat van de firmware-payload is eigendom van de leverancier |
| Cross-platform tooling | `dfu-util` open-source opdrachtregelprogramma ondersteunt standaard DFU-apparaten op Windows, macOS en Linux |
| Uitgebracht | 1999 (USB DFU specification 1.0 from USB-IF; revision 1.1 published 2004) |
| Laatste versie | USB DFU Specification Revision 1.1 (2004, USB.org) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.usb.org |
DFU conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over DFU-bestanden.