La société Bootlin a publié la première version de l'outil Snagboot, conçu pour restaurer et reprogrammer des dispositifs embarqués qui ne démarrent plus, par exemple en raison d'un firmware corrompu. Le code Snagboot est écrit en Python et est ouvert sous la licence GPLv2.
La plupart des plates-formes embarquées, en cas de corruption du firmware, fournissent des interfaces fonctionnant via USB ou UART pour restaurer l'opération et transmettre l'image de démarrage, mais ces interfaces sont spécifiques à chaque plate-forme et nécessitent l'utilisation d'outils de récupération liés à des produits de différents fabricants. Snagboot agit comme un équivalent des outils spécialisés, principalement propriétaires, pour la récupération et la reprogrammation d'appareils, tels que STM32CubeProgrammer, SAM-BA ISP, UUU et sunxi-fel.
Snagboot est conçu pour fonctionner avec une large gamme de cartes et de dispositifs embarqués, ce qui libère les développeurs de systèmes embarqués de la nécessité d'étudier les spécificités d'utilisation de différents outils. Par exemple, la première version de snagboot peut être utilisée pour restaurer des dispositifs basés sur SoC ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI et Texas Instruments AM62x.
L'outil comprend deux utilitaires pour le démarrage et la reprogrammation :
- snagrecover — utilise des mécanismes spécifiques à différents fabricants pour travailler avec le code dans la mémoire ROM afin d'initialiser la mémoire vive externe et de lancer le chargeur U-Boot sans modifier le contenu de la mémoire permanente.
- snagflash — interagit avec U-Boot actif pour flasher l'image système dans la mémoire non modifiable, en utilisant DFU (Device Firmware Upgrade), UMS (USB Mass Storage) ou Fastboot.
Source : opennet.ru
