Qu'est-ce que le format de fichier DFU ?
Les fichiers .dfu stockent des données de mise à jour de micrologiciel pour les périphériques connectés par USB, conformément à la spécification USB Device Firmware Upgrade (USB-IF, révision 1.1, 2004). Le format est principalement utilisé pour les systèmes embarqués et les microcontrôleurs - STM32, Atmel, Nordic Semiconductor et plates-formes similaires - plutôt que pour les appareils grand public Apple, malgré une idée reçue courante.
La mise à jour du micrologiciel d'un appareil comporte toujours un risque d'endommager l'appareil et doit être effectuée avec la plus grande prudence. Le micrologiciel est un programme logiciel intégré dans la mémoire persistante de l'appareil sous la forme d'un système d'exploitation complet ou d'une couche de contrôle intermédiaire. Le micrologiciel peut être mis à jour à l'aide de fichiers .dfu transmis via une connexion USB. Un micrologiciel endommagé peut causer des dommages permanents à l'appareil. La plupart des appareils modernes emploient des mesures de sécurité contre l'échec de la mise à jour : le suffixe DFU ajoute une somme de contrôle CRC32 à chaque fichier .dfu, permettant à l'appareil de vérifier l'intégrité avant d'appliquer la mise à jour.
Un fichier .dfu se compose d'une charge utile de micrologiciel spécifique à l'appareil, suivie d'un suffixe DFU obligatoire de 16 octets à la toute fin du fichier. Le suffixe encode l'identifiant du fournisseur USB (Vendor ID), l'identifiant du produit (Product ID), la version de la spécification DFU (bcdDFU) et le CRC32. STMicroelectronics étend le format de base avec une variante DfuSe utilisée par STM32CubeProgrammer.
Le mode de restauration DFU d'iOS d'Apple utilise le même protocole USB, mais Apple distribue le micrologiciel sous forme de paquets .ipsw signés - et non de fichiers .dfu bruts.
Sécurité et sûreté
RISQUE : MEDIUMLes fichiers DFU sont des images de micrologiciel destinées à être flashées sur des périphériques matériels. Le flashage d'un micrologiciel incorrect ou malveillant peut rendre un appareil définitivement inutilisable (un mauvais micrologiciel peut corrompre les chargeurs d'amorçage). Ne flashez que des fichiers .dfu provenant du fabricant officiel de l'appareil. Le fichier lui-même est inerte en tant que donnée ; le risque réside dans l'exécution de l'opération de flashage. Soyez prudent avec les sites Web distribuant des micrologiciels - vérifiez toujours auprès des sources officielles du fabricant et contrôlez le CRC.
Détails du format
en bref- Mode DFU d'Apple iOS - Les appareils Apple prennent en charge le mode DFU (un état de périphérique USB) mais le micrologiciel Apple est distribué sous forme de fichiers .ipsw signés, pas de fichiers .dfu ; .dfu n'est pas une extension spécifique à Apple.
Programmes qui ouvrent les fichiers DFU
Détails techniques
spécifications approfondies| Emplacement du suffixe DFU | Les 16 derniers octets du fichier - la signature DFU est un suffixe, pas un en-tête |
| Signature magique du suffixe | Octets de EOF-7 à EOF-5 : `0x55`, `0x46`, `0x44` - épelle `DFU` à l'envers (`UFD`) |
| Vérification d'intégrité | CRC32 sur tous les octets du fichier sauf le champ final de 4 octets `dwCRC` lui-même ; stocké dans le suffixe DFU |
| Ordre des octets | Petit-boutiste (Little-endian) (champs du suffixe DFU selon la spécification USB-IF) |
| Version de la spécification DFU | Champ `bcdDFU` dans le suffixe : `0x0100` = DFU 1.0 (1999) ; `0x011A` = DFU 1.1 (2004) |
| Charge utile du micrologiciel | Binaire brut spécifique à l'appareil avant le suffixe - pas d'octets magiques standard ; le format est défini par le fournisseur |
| ID fournisseur/produit | Les champs `idVendor` et `idProduct` dans le suffixe identifient la classe de périphérique USB cible |
| STMicroelectronics DfuSe | Variante étendue : préfixe ASCII `DfuSe` au début de la charge utile ; utilisé par STM32CubeProgrammer pour le micrologiciel STM32 |
| Distinction Apple | La restauration DFU d'iOS utilise le même protocole USB mais le micrologiciel est distribué sous forme de paquets `.ipsw` signés, pas de fichiers `.dfu` |
| Compression | Aucune dans la spécification DFU de base |
| Utilisation principale | Microcontrôleurs embarqués (STM32, Atmel/AVR, Nordic Semiconductor) et autres appareils compatibles USB-DFU |
| Spécification ouverte | La spécification USB DFU Révision 1.1 (USB-IF, 2004) définit le suffixe ; le format de la charge utile du micrologiciel est propriétaire du fournisseur |
| Outils multiplateformes | L'outil en ligne de commande open-source `dfu-util` prend en charge les appareils DFU standard sur Windows, macOS et Linux |
| Publié | 1999 (USB DFU specification 1.0 from USB-IF; revision 1.1 published 2004) |
| Dernière version | USB DFU Specification Revision 1.1 (2004, USB.org) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.usb.org |
Conversions DFU
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers DFU.