Pour manipuler un tel firmware, plusieurs outils sont nécessaires :
- outils wfi pour gérer le wfi-tag,
- outils mtd pour manipuler le système de fichier JFFS2 compacté en LZMA,
- scripts automatisant les opérations d'extraction et recomposition du firmware,
Outils wfi-tag
Les sources des outils wfi-tag-extract et wfi-tag-mk, permettant d'extraire et recomposer le wfi-tag du firmware de la NB6V sont disponibles sur le dépôt GNA de neufbox4.org. Il suffit de les compiler.
Outils mtd
Il est nécessaire de recompiler les outils mtd à partir de leurs sources en applicant le patch de SGDA car par défaut ils n'offrent pas le support de la compression LZMA pour le format de fichier JFFS2.
Scripts
Les scripts exnb6v.sh et mknb6v.sh sont disponibles sur le dépôt GNA de neufbox4.org.
Avant utilisation, il est nécessaire de les personnaliser afin de faire correspondre les variables WFI_TAG_EXTRACT, JFFS2_DUMP, JFFS2_EXTRACT, WFI_TAG_MK et MKFS_JFFS2 définies en début de script aux chemins des outils précédemment compilés sur votre système.
Modification du firmware
Après avoir récupéré le dernier firmware ( NB6V-MAIN-R3.3.9) de la NB6V sur le serveur de SFR, il suffit d'utiliser le script exnb6v.sh pour extraire le firmware.
./exnb6v.sh NB6V-MAIN-R3.3.9
L'arborescence se trouve alors dans le dossier fsb-root :
ls -ls fsb-root total 1112 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 bin 228 -rw-r--r--. 1 VincentAlex VincentAlex 231696 oct. 18 2013 cferam.001 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 dev 4 drwxr-xr-x. 20 VincentAlex VincentAlex 4096 oct. 18 2013 etc 4 drwxr-xr-x. 4 VincentAlex VincentAlex 4096 oct. 18 2013 lib 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 mnt -> /tmp/mnt 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 overlay 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 proc 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 rom 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 root 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 run -> /var/run 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 sbin 4 drwxr-xr-x. 2 VincentAlex VincentAlex 4096 oct. 18 2013 sys 4 drwxrwxrwx. 2 VincentAlex VincentAlex 4096 oct. 18 2013 tmp 4 drwxr-xr-x. 6 VincentAlex VincentAlex 4096 oct. 18 2013 usr 0 lrwxrwxrwx. 1 VincentAlex VincentAlex 8 oct. 18 2013 var -> /tmp/var 832 -rw-r--r--. 1 VincentAlex VincentAlex 850861 oct. 18 2013 vmlinux.lz 4 drwxr-xr-x. 4 VincentAlex VincentAlex 4096 oct. 18 2013 www
Afin d'avoir accès au shell de la NB6V, un nouveau compte avec droits administrateur est ajouté (par exemple compte ob6, mot de passe ob6). L'ajout du compte ob6 se fait par l'ajout de la ligne suivante dans le fichier fob-root/etc/passwd :
ob6:x:0:0:root:/:/bin/sh
et la ligne suivante dans le fichier fsb-root/etc/shadow :
ob6:$1$/iGYBb6m$xmxNGUHymwdCiziuqpeyF1:14550:0:99999:7:::
Le chiffrement du mot de passe est réalisé avec la commande suivante :
openssl passwd -1 -salt /iGYBb6m ob6
Ensuite, le script mknb6v.sh est utilisé pour recomposé le firmware :
./mknb6v.sh fsb-root NB6V-MAIN-R3.3.9-OPEN
Flashage
Le flashage de la NB6V se fait par bootp. Pour cela, il faut un serveur DHCP et TFTP où le fichier de boot correspond au firmware recomposé précédemment (NB6V-MAIN-R3.3.9-OPEN).
Mettre sous tension la NB6V tout en appuyant sur le bouton de service (SFR). Les leds vont clignoter en rouge, le firmware va être téléchargé du serveur tftp puis se flasher automatiquement. La neufbox redémarre avec le firmware modifié.
Accès au shell
Uniquement en ssh par la commande suivante avec l'utilisateur et mot de passe défini précédemment :
ssh 192.168.1.1 -l ob6 -p 1288 ob6@192.168.1.1's password: BusyBox v1.15.3 (2013-10-18 18:46:08 CEST) built-in shell (ash) Enter 'help' for a list of built-in commands. ____ ____ ____ _ _ / __ \____ ___ ____ / __ )/ __ \ |/ / / / / / __ \/ _ \/ __ )/ __ / / / / / / /_/ / /_/ / __/ / / / /_/ / /_/ / | \____/ ____/\___/_/ /_/_____/\____/_/|_| / / /_/ OpenBox Project By NeufBox4.org Backfire (10.03, r29368) -------------------------- * Powered by Efixo (NB6-MAIN-R3.3.9, r16610) (http://www.efixo.net/gpl/) * OpenWrt Base Firmware (http://openwrt.org) --------------------------------------------------- root@nb6:~#
Bonne bidouilles avec notre NB6V " rootée " !