Accueil Routeurs 4G
routeur4g.fr est financé par ses lecteurs. Quand vous achetez en passant par les liens du site, nous pouvons toucher une commission d’affiliation.

[TUTO] Modification d'un firmware FW

124

Réponses

  • yyvon66yyvon66 Membre Messages: 929
    Modifié (avril 2020)
    je suis arrivé à quelque chose,
    j'ai fait extraction
    mkdir WEBUI<br>cd WEBUI<br>cpio -ivm -F ../12-005b0000-WEBUI.bin
    ça m'a fait des erreurs, mais ça m'a créé le répertoire webapp
    j'ai modifié la durée en webserver
    j'ai refait la manip inverse
    cd ../WEBUI<br>find . -print | cpio -ov -H newc -F ../12-005b0000-WEBUI-mod.bin 
    recréé le firmware, installé et là :
    ça marche, j'ai bien internet en 4G, mais je n'ai plus accés au routeur en 192.168.8.1

    quand je regarde dans les paramètres de windows, je trouve bien 192.168.8.1 !!

    suis juste apprentir sorcier.... ;) ça doit être un coup du coro na windows B)

    et ça speed !!

    une partie de la liste d'erreur du root@DESKTOP-EQOTUTG:/home/yyvon/WEBUI# cpio -ivm -F ../12-005b0000-WEBUI_81.100.33.01.03_CPE-sec.BIN



  • raknamraknam Membre Messages: 2
    Une remarque sur le tuto d'installation de qhuaweiflash via WSL, il faut que la distribution linux soit en version WSL1, pas en WSL2. Sinon impossible de connecter Xming depuis la distrib.
    cc @oga83
  • yyvon66yyvon66 Membre Messages: 929
    je ne saurais dire, j'ai installé kali via microsoft store, et rien d'autre à faire que de cliquer sur kali pour lancer, lancer auparavant xming, bien sûr
    oga83 l'a bien expliqué, j'ai suivi, je n'avais jamais fait auparavant.
  • oga83oga83 Membre Messages: 1121
    La plupart des installations sont en v1 pour le moment.
    Pour utiliser xming avec WSL 2, il faut spécifier l'adresse IP de l'hôte Windows dans la variable DISPLAY. Par exemple :
    export DISPLAY=172.17.0.13:0

  • yyvon66yyvon66 Membre Messages: 929
    salut, pour le plaisir, j'ai modifié le logo, mais pas avec la commande "pinta " inconnu sous mon Kali, j'ai fait un copier/collé dans le bon répertoire et réinjecté,
    d'être confiné, ça donne un peu de temps pour se faire la main, a+

  • GujjarGujjar Membre Messages: 3
    comment signer le firmware après modification
  • oga83oga83 Membre Messages: 1121
    @Gujjar Facile : il suffit de factoriser la clef RSA... :D
    En gros, tu ne peux pas signer le firmware.
  • ModprobeModprobe Membre Messages: 79
    En parlant de clefs RSA... J'ai tenté de changer la CA et le certificat du routeur... Impossible !

    C'est intégré dans le binaire ("web" de mémoire) et quand il se lance il extrait dans /var et démarre avec...
    Même en mettant des fichiers avec les mêmes noms et une protection contre l'écriture il les shunte.

    Assez crade !
  • GujjarGujjar Membre Messages: 3
    https://github.com/Huawei-LTE-routers-mods/README/blob/master/how_to_flash_balong_v7r11_without_datalock_code.md j'ai vu celui-ci signer le firmware possible et installer n'importe quel routeur mais je ne sais pas comment utiliser
  • oga83oga83 Membre Messages: 1121
    @modprobe Je n'ai pas trop investigué de ce côté là mais il me semble que la clef du binaire "web" n'est pas celle utilisée pour la vérification de signature des firmwares. Elle se trouve dans le binaire "update".
    @Gujjar Pour signer un firmware soi-même, il faut d'abord flasher un firmware dans lequel on a mis une clef connue (c'est à dire une clef publique pour laquelle on a la clef privée).


  • ModprobeModprobe Membre Messages: 79
    oga83 a dit :
    @modprobe Je n'ai pas trop investigué de ce côté là mais il me semble que la clef du binaire "web" n'est pas celle utilisée pour la vérification de signature des firmwares. Elle se trouve dans le binaire "update".

    Non je ne pense pas non plus en effet.
    Je parlais simplement pour pouvoir changer les certificats du serveur web :).

  • ZeymonZeymon Membre Messages: 10
    Bonjour, merci pour ce tuto, j'ai fais quelques test avec les sources en Russe.
    Serait-il possible d'avoir les sources en Anglais pour les 3 logiciels ? Le github Oga83 n'est plus en ligne.
    En vous remerciant d'avance.
  • yyvon66yyvon66 Membre Messages: 929
    pour la mise a jour du firmware, tu as ce qu'il fautici, fin post d'oga83  :
    https://routeur4g.fr/discussions/discussion/comment/16664/#Comment_16664
  • ZeymonZeymon Membre Messages: 10
    Merci, j'étais passé à côté de ce post, par contre, j'ai trouvé un fork pour qhuaweiflash en Anglais :
    https://github.com/pearlxcore/qhuaweiflash
    Balongflash et balong-usbdload sont également avec la traduction EN sur le git de pearlxcore et d'autres outils.
    Bonne soirée.



  • yyvon66yyvon66 Membre Messages: 929
    Modifié (mai 2020)
    @oga83
    question, sur le FW récupéré (B715-23c_UPDATE_11.198.01.01.965_M_AT.bin), j'ai ajouté le lancement LTE_H_M embarqué, je le test et ça fonctionne bien, pour ce qui est du passwd, ce n'est pas le même, est-ce que cela a de l'importance ?

    celui du post comme mis plus haut :  root::0:0:root:/tmp:/bin/sh
    celui du fw récupéré : root::0:0:root:/data/root-home:/bin/sh

    l'autorun contient d'autres instructions que j'ai laissé, puis-je tout laisser ?
    merci de ton avis d'expert.

    l'autorun comme je l'ai modifié : 

    <div>#!/system/bin/busyboxx sh</div><div><br></div><div>mkdir bin</div><div>ln -s /system/bin/sh /bin/sh</div><div><br></div><div>ln -s /system/bin/busyboxx /bin/passwd</div><div><br></div><div>busybox echo 0 > /proc/sys/net/netfilter/nf_conntrack_checksum</div><div><br></div><div>/app/webroot/webui_init1.sh</div><div><br></div><div>insmod /system/xbin/kpatch.ko addr=g_bAtDataLocked data=0,0,0,0 2> /dev/null</div><div><br></div><div>/system/etc/fix_ttl.sh</div><div><br></div><div>/system/bin/insmod_ctf_ko.sh</div><div>/etc/huawei_process_start</div><div><br></div><div>busybox-armv7l telnetd -l /bin/sh&nbsp; &nbsp;==============&nbsp; ===================== mon ajout</div><div># 0oga83 Wait for mic to start cms (mounts SDcard)</div><div>busybox sleep 15</div><div># Run HME autorun on SDcard</div><div>if [ -f /mnt/sdcard/*/hme/autorun.sh ]; then source /mnt/sdcard/*/hme/autorun.sh; fi</div><div>busybox sleep 10&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;================&nbsp; &nbsp;========================== fin mon ajout</div><div><br></div><div>mv /sbin/adbd /sbin/adbd~</div><div><br></div><div>grep -q "root::" /system/etc/passwd</div><div>if [ $? -eq 1 ]; then</div><div>	if [ ! -d /data/root-home ]; then</div><div>		mkdir /data/root-home</div><div>	fi</div><div>	if [ ! -f /data/root-home/.profile ]; then</div><div>		echo "cd /" > /data/root-home/.profile</div><div>	fi</div><div>	echo -e "#!/bin/sh\n\nbusyboxx login -p" > /sbin/login.sh</div><div>	chmod 777 /sbin/login.sh</div><div>	busyboxx telnetd -l /sbin/login.sh</div><div>else</div><div>	busyboxx telnetd -l /bin/sh</div><div>	adbd &</div><div>fi</div><div><br></div><div>uid=`busyboxx cut -d : -f3 /system/etc/passwd`</div><div>if [ $? -eq 0 ]; then</div><div>	if [ $uid != "0" ]; then</div><div>		mount -o remount,rw /system</div><div>		busybox sed -i "s/$uid/0/" /system/etc/passwd</div><div>		mount -o remount,ro /system</div><div>	&nbsp; fi</div><div>fi</div><div><br></div><div>/app/webroot/webui_init2.sh</div>

    Message edité par ludovick on
  • oga83oga83 Membre Messages: 1121
    - Pas la peine de modifier soi-même le fichier /etc/passwd si root est déjà présent
    - Il ne faut pas toucher au reste du fichier /etc/autorun.sh
    - A mon avis, le "busybox sleep 10" placé juste après l'appel de l'autorun sur la carte SD ne sert à rien (mais il ne fait pas de mal). C'est celui qui est juste avant qui est indispensable.
  • yyvon66yyvon66 Membre Messages: 929
    ok, merci de ta réponse rapide,
    le "busybox sleep 10" placé juste après l'appel de l'autorun, c'est moi qui l'ai ajouté, si ça ne fait pas de mal, je vais le laisser, je l'enlèverai lors d'une prochaine modif, je l'ai mis quand j'ai modifié celui qui est avant, 
    l'avantage de ce firmware, est qu'il est en webui 1.5, je ne sais si ça apporte grand chose,
    je vais le mettre dispo, s'il y en a que ça intéresse (je pense que yakkza est intéressé)
    bonne journée, a+

    https://drive.google.com/file/d/1fiJ1w6cGmjcwf7Ycb3dzyY6I9s6l4rOK/view?usp=sharing

  • yyvon66yyvon66 Membre Messages: 929
    salut
    @oga83, je viens d'installer windows 10 version 2004, nikel, sans souci, et
    et miracle, je ressaye la commande \\192.168.8.1 qui ne marchait plus, et miracle, ça marche !!
    je n'aurai plus besoin d'aller le faire sur le portable de mme,

    va savoir pourquoi, les mystères de l'informatique, mais surement par rapport aux paramétrages que j'ai voulu faire, en voulant faire faire le mini  indispensable (pas besoin de tous les modules qu'ils veulent mettre) à windows, j'avais dû désactiver un truc nécessaire,
    voilà la soluce, sans rien faire d'autre que la mise à jour windows.
    bonne soirée, a+
  • MartiniMartini Membre Messages: 61
    @oga83 Superbe boulot !
  • flavi1flavi1 Membre Messages: 4
    Bonjour je ne me suis pas encore procuré de fer à souder, mais cette possibilité de modification de firmware est très inspirante.
    Quelques idées (je n'ai pas les compétances pour les réaliser, mais je les partage...).
     - Incorporer services et modules existant dans une distribution (debian ou Centos par exemple) -> souplesse, système de packet et sécurité
     - Auto-montage optionnel d'un volume par son label (ex : "DATA") pour offrir une couche de persistance (et ainsi, nottament, mettre à jour la distro sans reflasher) -> sécurité + personnalisation du système simplifier
     - Ainsi il devient simple d'installer, au choix, telnet ou ssh par exemple
     - Remplacer le client SIP par Asterisk + FreePBX. -> Si on veut continuer d'en faire un client SIP, on peut, mais si on préfère le transformer en serveur SIP tout bien configuré et sécurisé pour être accessible par Internet, on pourrait aussi.
     - Eventuellement un script permettant de régénérer un nouveau FW à partir de la configuration actuelle -> performance + partage de configs facilité...
    Qu'en pensez vous?

  • oga83oga83 Membre Messages: 1121
    Cela a déjà été réalisé en partie :
    - Lancement d'un script au démarrage sur la clef USB
    - tcpdump ajouté 
    - Serveur telnet ajouté


  • flavi1flavi1 Membre Messages: 4
    Oui. Cette contribution conséquente ne m'avait pas échappée ;) Incontournable chez certains nottament pour forcer le choix des fréquences, et ne pas avoir à choisir entre la téléphonie sim sur rj11 et la performance.

    J'avoue préférer ssh à telnet, même si le second à l'avantage d'être nativement géré par windaube.
    Le script de démarrage pourrait en effet aider.. Pour l'auto montage du volume de persistance par exemple...

    Je vais me contredire (plus ou moins)
    La persistance pose un problème. On préférera que l'arborescence système d'un routeur reste en lecture seule (inaltérable). Cependant, les mises à jour de sécurité c'est quand même sympa (incontournable!!) d'en bénéficier pour des raisons trop évidentes...
    C'est un dilemme. Mais même en flashant régulièrement le FW, une distro offrirait un certain gain de temps et une certaine assurance : Idéalement, il faudrait qu'il soit simple, pour tout un chacun de reproduire l'install et la config de son propre système.

    Reste l'idée d'un serveur SIP pour les appel entrant et sortant de la SIM (possible avec asterisk et freepbx?) qui exigerait une config durablement bien sécurisée pour être envisageable par delà un reseau local....

    Le point de départ (pour une distro) serait probablement d'isoler ce qui est spécifique à la machine dans le FW officiel (quel(s) drivers/modules proprios? Uniquement compatibles avec ce noyau? Des binaires huawei fait maison? Possibilité de creer un/des deb pour isoler tout ça?)

    Debian? Centos? Raspbian? Raspbx?

    Par oú on commence? Un chroot?
    Ça intéresse quelqu'un d'autre que moi au moins?
    Bonne soirée ;)
    Et joyeux confinement !
  • oga83oga83 Membre Messages: 1121
    Le problème, c'est que toutes les modifications sont perdues lors d'une mise à jour du firmware.
    Y compris les mises à jour de sécurité.
    C'est la raison pour laquelle j'ai limité mes modifications dans le firmware.
    Mais il y en a qui sont allés plus loin comme @modprobe.
    Voir ici par exemple.

  • ModprobeModprobe Membre Messages: 79
    Modifié (novembre 2020)
    De toute façon il ne faut pas oublier qu'on est sur une base Android (4.4) et qu'on est assez vite limités par l'OS en lui-même.

    Il y a des choses possibles mais il ne faut pas s'attendre à révolutionner complètement le truc.
    De plus et comme l'indique @oga83 les modifications sont perdues lors des MAJ (et d'ailleurs le Kernel n'évolue pas, il faudrait voir sur les versions en 81.x s'il a changé ?).

    Sur 4PDA dans le topic B525 ils parlent d'installer OPKG et pas mal de packages avec... : https://4pda.ru/forum/index.php?s=&showtopic=800482&view=findpost&p=75680288

    J'ai découvert ça bien après m'être amusé avec le routeur (même si je l'aurais fait quand même de toute façon). A priori il y a même quelqu'un qui propose Wireguard depuis fin septembre. Je n'ai plus l'exclusivité zut :D .

    L'inconvénient de 4PDA c'est qu'à moins de parler Russe il faut se faire du Google Translate et c'est pas génial du tout.

    Pour ma part j'investis peu dans le B525, il vit sa vie comme un grand et il le fait bien d'ailleurs :

    root@b525:/ # uptime
     00:25:44 up 192 days, 27 min,  0 users,  load average: 20.08, 20.12, 20.13

    192 jours sans redémarrer, il est d'une stabilité incroyable comparé au E5186 qui redémarrait une fois par semaine.

    Les seules modifications que j'ai faites depuis :
    - Nouvelles versions de l'agent Zabbix (5.2.0 actuellement).
    - MAJ de Wireguard de temps en temps (1.0.20200908 actuellement).

    J'ai également mis un mini serveur HTTP (sur port 8080) et une règle IPTables (qui redirige le port 80 sur 8080) pour pouvoir faire ensuite une redirection transparente en HTTPS. C'est crade mais ça fait le taff. L'idéal aurait été de pouvoir changer les certificats mais bon...
  • flavi1flavi1 Membre Messages: 4
    Génial pour opkg!
    Dans la liste des paquets dispo il y'a union fs en version fuse.
    Il doit y'avoir moyen d'étendre le système sur une clef usb avec montage par label au démarrage, tout en isolant la partie touchée par les mises à jour.
    Je suppose ici que les mises à jour reflash l'appareil. C'est bien ça?
    Si tel est le cas, on peut minimiser le nombre de modif de la config firmware au strict minimum (busybox+wget+opkg+fuse-union-fs, automontage, autorun utilisateur).
    Refaire la même manipulation à chaque upgrade permettrait de retrouver tout le système installé en "surcouche" union-fs, peu importe le nombre de packets opkg installés. De plus opkg dispose de la capacité à mettre à jour ses packets.
    On aurait donc l'installation des packets sur support externe et en principe RELATIVEMENT indépendante de la version du FW...
    Tout cela est totalement théorique. Je verrais ça quand je me procurerai résistance +fer à souder+ interrupteur.

    L'actuel post étant réservé à la question assez générale de la modification de FW,
    je vais aussi ouvrir un autre post sur la question spécifique d'un éventuel serveur asterisk permettant d'exploiter la SIM de l'extérieure du routeur (sms appels entrants/sortants, et peut être MMS et visio, qui sait!... on peut rêver lol). 
  • surfzoidsurfzoid Membre Messages: 7
    Bonjour
    J'ai un B715s-23c acheter sur french alibaba un peut trop vite ....
    A ma grande surprise, déjà garantie 6 mois! zéro support technique, juste des réponses commerciales.
    je contact huawei qui me confirme que c'est une version pour le marché chinois, bien que étrangement il supporte très bien free! et que il n y aura jamais de mise a jours du firmware, je sens la contrefaçon, sic.
    pensez vous que malgré tout le matériel est identique et que je puisse forcer un flash du firmware sans risque, par exemple, celui présent ici dans la discutions qui a le telnet ?
    Je pourrais avoir un DHCP qui gère les ip statiques et un vrai upnp/nat
    je vous remercie
  • XaTXaT Membre Messages: 20
    @oga83

    https://github.com/Oga83/ tu as supprimé ton compte ?
  • biohazarkbiohazark Membre Messages: 13
    Excellent tuto ! Dommage qu'il ne soit pas trouvable par la recherche du site
  • Dutchman24Dutchman24 Membre Messages: 1660
    Je suis d'accord avec toi @biohazark
    la recherche du site n'est pas au top, mieux encore c'est d'utiliser google avec ( "demande de recherche" + routeur4G )
  • ludovickludovick Membre Messages: 8188
    Modifié (janvier 2022)
    C'est bien indiqué dans le message de bienvenu :  

     la recherche Google du forum (remplacer * par votre recherche)
    la plupart des questions ont déjà été traitées et résolues.
    :)
Connectez-vous ou Inscrivez-vous pour répondre.