Co to jest format pliku DFU?
Pliki .dfu przechowują dane aktualizacji oprogramowania układowego dla urządzeń podłączonych przez USB, zgodnie ze specyfikacją USB Device Firmware Upgrade (USB-IF, wersja 1.1, 2004). Format ten jest używany głównie w systemach wbudowanych i mikrokontrolerach - STM32, Atmel, Nordic Semiconductor i podobnych platformach - a nie w konsumenckich urządzeniach Apple, wbrew powszechnemu błędnemu przekonaniu.
Aktualizacja oprogramowania układowego urządzenia zawsze niesie ze sobą ryzyko uszkodzenia sprzętu i powinna być wykonywana z najwyższą ostrożnością. Firmware to program komputerowy osadzony w trwałej pamięci urządzenia w formie pełnego systemu operacyjnego lub pośredniej warstwy kontrolnej. Oprogramowanie układowe można aktualizować za pomocą plików .dfu przesyłanych przez połączenie USB. Uszkodzone oprogramowanie może spowodować trwałe uszkodzenie urządzenia. Większość nowoczesnych urządzeń stosuje środki bezpieczeństwa chroniące przed nieudaną aktualizacją: sufiks DFU dołącza sumę kontrolną CRC32 do każdego pliku .dfu, co pozwala urządzeniu zweryfikować integralność przed zastosowaniem aktualizacji.
Plik .dfu składa się z danych oprogramowania układowego specyficznych dla danego urządzenia, po których na samym końcu pliku następuje obowiązkowy 16-bajtowy sufiks DFU. Sufiks ten koduje identyfikator dostawcy USB (vendor ID), identyfikator produktu (product ID), wersję specyfikacji DFU (bcdDFU) oraz sumę CRC32. STMicroelectronics rozszerza podstawowy format o wariant DfuSe używany przez STM32CubeProgrammer.
Tryb odzyskiwania iOS DFU firmy Apple korzysta z tego samego protokołu USB, ale Apple dystrybuuje oprogramowanie układowe jako podpisane pakiety .ipsw - a nie surowe pliki .dfu.
Bezpieczeństwo
RYZYKO: MEDIUMPliki DFU to obrazy oprogramowania układowego przeznaczone do flashowania w urządzeniach sprzętowych. Flashowanie nieprawidłowego lub złośliwego oprogramowania może trwale uszkodzić urządzenie (zły firmware może uszkodzić bootloadery). Należy flashować wyłącznie pliki .dfu pochodzące od oficjalnego producenta urządzenia. Sam plik jako dane jest obojętny; ryzyko wiąże się z wykonaniem operacji flashowania. Zachowaj ostrożność przy stronach dystrybuujących firmware - zawsze weryfikuj je z oficjalnymi źródłami producenta i sprawdzaj sumę CRC.
Szczegóły formatu
w pigułce- Tryb Apple iOS DFU - Urządzenia Apple obsługują tryb DFU (stan urządzenia USB), ale oprogramowanie Apple jest dystrybuowane jako podpisane pliki .ipsw, a nie pliki .dfu; .dfu nie jest rozszerzeniem specyficznym dla Apple.
Programy otwierające pliki DFU
Szczegóły techniczne
specyfikacja| Lokalizacja sufiksu DFU | Ostatnie 16 bajtów pliku - sygnatura DFU jest sufiksem, a nie nagłówkiem |
| Magiczne bajty sufiksu | Bajty od EOF-7 do EOF-5: `0x55`, `0x46`, `0x44` - tworzą napis `DFU` pisany wspak (`UFD`) |
| Kontrola integralności | CRC32 ze wszystkich bajtów pliku z wyjątkiem samego końcowego 4-bajtowego pola `dwCRC`; przechowywane w sufiksie DFU |
| Kolejność bajtów | Little-endian (pola sufiksu DFU zgodnie ze specyfikacją USB-IF) |
| Wersja specyfikacji DFU | Pole `bcdDFU` w sufiksie: `0x0100` = DFU 1.0 (1999); `0x011A` = DFU 1.1 (2004) |
| Dane oprogramowania (payload) | Surowe dane binarne specyficzne dla urządzenia przed sufiksem - brak standardowych magicznych bajtów; format definiowany przez dostawcę |
| ID dostawcy/produktu | Pola `idVendor` i `idProduct` w sufiksie identyfikują docelową klasę urządzenia USB |
| STMicroelectronics DfuSe | Rozszerzony wariant: prefiks ASCII `DfuSe` na początku danych; używany przez STM32CubeProgrammer dla firmware STM32 |
| Rozróżnienie Apple | Odtwarzanie iOS DFU używa tego samego protokołu USB, ale oprogramowanie jest dystrybuowane jako podpisane pakiety `.ipsw`, a nie pliki `.dfu` |
| Kompresja | Brak w podstawowej specyfikacji DFU |
| Główne zastosowanie | Wbudowane mikrokontrolery (STM32, Atmel/AVR, Nordic Semiconductor) i inne urządzenia obsługujące USB-DFU |
| Otwarta specyfikacja | Specyfikacja USB DFU Revision 1.1 (USB-IF, 2004) definiuje sufiks; format danych oprogramowania jest własnością dostawcy |
| Narzędzia wieloplatformowe | Otwartoźródłowe narzędzie linii poleceń `dfu-util` obsługuje standardowe urządzenia DFU w systemach Windows, macOS i Linux |
| Wydano | 1999 (USB DFU specification 1.0 from USB-IF; revision 1.1 published 2004) |
| Najnowsza wersja | USB DFU Specification Revision 1.1 (2004, USB.org) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.usb.org |
Konwersje DFU
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki DFU.