Extraction du système

Un article de Neuf Box 4.

Sommaire

Format du rootfs

Comme nous l'avons vu sur la page Format du firmware, le rootfs est compressé en SquashFS. Cependant, c'est une variante qui est utilisée, le SquashFS LZMA, et non pas le SquashFS classique qui utilise GZIP.

D'après le site officiel de SquashFS LZMA (qui est en fait un patch au projet SquashFS classique), le LZMA permet d'obtenir un taux de compression encore plus important.

Le LZMA n'étant pas encore inclus dans le noyau Linux officiel, l'utiliser dans le projet SquashFS classique risquerait de compromettre ses chances d'inclusion, d'où l'existence du patch séparé.

nb4-unsquash

Un outil permet de décompressé le système de fichier de la partie de firmware extraite sur cette page.

Suivant la version du firmware, les versions des algorithmes de compression ne sont pas les mêmes.

Des informations pour les 2 versions sont disponibles sur le forum :

Dans le dépôt Gna, il existe 2 unsquash différents :

  • ici pour les versions <2.x
  • ici pour les versions >=2.x

Compilation

  • Sous Linux
$ svn co svn://svn.gna.org/svn/openbox4/trunk/tools/nb4-unsquash openbox4/trunk/tools/nb4-unsquash
$ cd openbox4/trunk/tools/nb4-unsquash
$ make
  • Sous Windows
Utiliser MinGW ou Cygwin
  • Sous Mac OS X
Idem sous linux

Utilisation

Nous allons décompresser dans cet exemple le fichier NB4-R1.3.11-ROOTFS créé à cette étape en vue d'obtenir une copie du système de fichiers.

#./nb4-unsquash -d rootfs NB4-R1.3.11-ROOTFS


Les allergiques à la compilation peuvent toujours utiliser le script python historique unsquash.py qui permet l'extraction complète du système de fichiers des versions 1.x. Attention, la date de certains types de fichiers n'est pas rétablie et il faut avoir installer le module pylzma (disponible ici)

#./unsquash.py NB4-R1.3.11-ROOTFS rootfs
unsquash for NeufBox4 - version 36


Dans tous les cas, le résultat est un répertoire nommé rootfs.

Attention, le système de fichiers comporte des leins symboliques et il peut présenter des fichiers dont le nom ne diffère que par la casse (Majuscules - minuscules). L'utilisation de ces outils sous Windows peut conduire à des écrasements de fichiers et donc un système de fichiers incomplet.

Autres méthodes expérimentales

Extraction du firmware (méthodes expérimentales)