Comment est construit un paquet de firmware USB de TV
Un fichier de firmware pour mise à jour USB ressemble à un bloc opaque, mais à l’intérieur se trouve une pile de conteneurs : une enveloppe externe, un script ou une table, et des images de partitions, souvent compressées. Connaître les couches vous dit ce que vous pouvez lire, modifier et reconstruire.
Fait partie du Guide du firmware et des dumps.
Pourquoi regarder à l’intérieur
- Pour trouver les chaînes de version, de modèle et de SoC avant de flasher un fichier sur le mauvais téléviseur.
- Pour voir quelles partitions le paquet met à jour et lesquelles il laisse intactes.
- Pour adapter un paquet à une autre dalle ou une autre télécommande, voir la page des fonctions.
Les couches
- Conteneur externe. Selon le constructeur, il peut s’agir d’une archive simple (tar, zip), d’un format propriétaire (le programme reconnaît LG EPK, Philips UPG et Android OTA), ou d’un binaire brut avec un en-tête.
- Script ou table. Les paquets basés sur MStar commencent par un script texte (des commandes comme
filepartload) qui indique au bootloader quelle partie du fichier va dans quelle zone de la flash. D’autres familles utilisent une table d’en-tête. - Images de partitions. Les charges utiles typiques sont un noyau, un DTB, un initramfs (cpio) et des images de systèmes de fichiers comme squashfs, cramfs, ext4, UBI/UBIFS ou JFFS2, ainsi que des images Android sparse et boot.img.
- Compression. gzip, xz, lzma, bzip2, zstd et lz4 sont des enveloppes courantes autour de ces images, et peuvent être imbriquées.
Lire un fichier inconnu pas à pas
- Notez la taille et un hachage (MD5 ou SHA-256) pour pouvoir constater plus tard si le fichier a changé.
- Regardez les octets d’en-tête et les chaînes lisibles : versions, noms de modèles, noms de SoC, lignes de script.
- Recherchez les signatures. Un nombre magique seul prouve peu de chose ; un bon scanner valide donc aussi la structure qu’il trouve (tailles, en-têtes) pour éviter les faux positifs.
- Vérifiez l’entropie. Une entropie élevée et uniforme signifie des données compressées ou chiffrées ; une entropie très basse signifie du remplissage vide ; des zones mixtes correspondent généralement à un vrai contenu de système de fichiers.
- Décompressez couche par couche, avec une limite de profondeur d’imbrication, dans un dossier propre.
Si une image a une entropie élevée et aucune signature reconnaissable, elle est probablement chiffrée ou utilise une compression propriétaire. Ne considérez pas cela comme un dommage, et n’essayez pas de la reflasher après une modification hexadécimale : les contrôles de signature ou de somme de contrôle du bootloader peuvent la rejeter, ou pire, accepter un fichier corrompu. NON VÉRIFIÉ Les familles qui contrôlent les signatures varient selon le modèle ; consultez la documentation du constructeur.
Erreurs typiques
- Flasher un fichier choisi uniquement d’après la taille de l’écran. Comparez les identifiants de carte et de dalle dans les chaînes.
- Modifier une image sur place en conservant l’ancienne somme de contrôle ou l’ancien champ de taille.
- Décompresser deux fois dans le même dossier, de sorte que les anciens fichiers se mélangent aux nouveaux.
- Croire que « décompressé sans erreur » signifie « peut être recompressé à l’identique ». Les niveaux de compression et l’ordre des fichiers changent le résultat.
Comment cela se fait dans FW Tool
- L’onglet « Firmware » affiche un résumé : taille, MD5 et SHA-256, en-tête, chaînes intéressantes.
- Il recherche les signatures citées plus haut et les valide ; il analyse aussi les scripts MStar et découpe le fichier par partition.
- Une carte d’entropie marque les zones compressées ou chiffrées et le remplissage (une case à cocher, activée par défaut).
- L’extraction récursive dispose d’un réglage de profondeur d’imbrication (de 0 à 8, 3 par défaut). Certains systèmes de fichiers exigent des outils externes comme 7-Zip ou unsquashfs, s’ils sont installés.
- Pour les paquets basés sur tar, le programme peut reconstruire le paquet après le remplacement de fichiers.
- L’onglet « Adaptation » lit un paquet pris en charge, affiche les réglages de dalle et de télécommande qu’il trouve et construit un paquet modifié. Voir aussi le mappage LVDS et la profondeur de couleur.
Avant de toucher à un paquet, faites un dump de l’appareil fonctionnel si possible : voir la comparaison des dumps et des hachages.
FAQ
Tout fichier de firmware peut-il être décompressé ?
Non. Les conteneurs chiffrés ou signés présenteront une entropie élevée et aucune structure exploitable. Le programme vous indique ce qu’il a pu identifier ; il ne peut pas déchiffrer ce dont il n’a pas la clé.
Quelle profondeur utiliser ?
Commencez avec la valeur par défaut et ne l’augmentez que si le résultat contient encore des archives. Une plus grande profondeur demande plus d’espace disque et de temps.
Les données décompressées peuvent-elles être flashées sans risque ?
Les fichiers décompressés servent à l’inspection. Ne flashez qu’un paquet complet que vous avez reconstruit ou obtenu intact, sur un appareil dont vous avez un dump pour revenir en arrière.
Une liste de contrôle pratique avant le flashage
- Les identifiants de modèle, de carte et de dalle dans le fichier correspondent au téléviseur que vous réparez.
- La taille et le hachage du fichier correspondent à ce qu’indique la source, si elle les indique. Un téléchargement interrompu à mi-chemin est une cause fréquente de mises à jour ratées.
- La clé USB est formatée comme l’exige le constructeur (FAT32 est le choix habituel) et ne contient que le fichier de mise à jour, dans le dossier ou sous le nom attendu. NON VÉRIFIÉ Les noms de fichiers et les règles de dossiers diffèrent selon la plateforme ; consultez les instructions du constructeur.
- Vous disposez d’un dump de la mémoire actuelle, afin qu’une mise à jour ratée puisse être annulée.
- L’alimentation secteur est stable et le téléviseur ne sera pas éteint pendant la mise à jour.
Un paquet qui semble correct sur un PC peut quand même échouer sur le téléviseur pour des raisons que le PC ne voit pas, comme un contrôle de version dans le bootloader. Considérez l’analyse comme un moyen de réduire le risque, non de le supprimer.