Dazu erstellt man ein sog. InMemory-Image, da die neueren FRITZ!OS keine unsignierten Firmwares mehr akzeptieren. Während der Gelegenheit bietet es sich an, eine eigene Signatur auf das modifizierte Image zu packen, denn dann lassen sich später eigene Firmwareimages ganz einfach über die Update-Funktion im FRITZ!OS auf die Box laden.
Am einfachsten gelingt das Vorhaben mit Freetz.
Freetz bietet einen "no freetz"-Modus, in dem keinerlei sonstige Änderungen an der Firmware durchgeführt werden, was sich in diesem Fall anbietet.
Achtung, große Teile dieser Anleitung sind mit Stand 01/2021 überholt!
- Freetz auschecken
$ git clone https://github.com/Freetz/freetz.git freetz-devel
$ cd freetz-devel
- Signiertes InMemory Image mit freetz erstellen
Die Änderungen werden in die fwmod_custom eingetragen:
# change branding to avmNun wird das Konfigurationsmenü gebaut:
sed -i 's/\bexport OEM\b/export OEM=avm/g' ./filesystem/etc/init.d/rc.conf
$ make menuconfigAls erstes muss das "Level of user competence" auf "Expert" gestellt werden, danach ganz unten im "Build system" in den "Firmware packing (fwmod) options" die Punkte
[*] Skip modifying unpacked firmware, adding Freetz stuffausgewählt und ein Passwort für den privaten Schlüssel der eigenen Signatur vergeben werden. Das Konfigurationsmenü kann dann 2x mit "Exit" verlassen werden.
[*] Sign image
[*] Create in-memory image file
Und schließlich wird das Image gebaut:
$ makeIm Ordner "images" befindet sich nun eine Datei "7580_<fritzosvers.lang>_<date>-<time>.image.in-memory".
Der Einfachheit halber kopieren wir das Image in den tools-Ordner:
$ cp images/7580_<fritzosvers.lang>_<date>-<time>.image.in-memory tools/yf/eva_tools/myimage.bin
- Aktive Dualboot-Partition wechseln
Die neueren Boxen besitzen eine Dualboot Partition, was recht praktisch ist, da so selbst bei einem missglückten Flashversuch immer eine funktionierende Firmware vorhanden ist.
Wir wechseln in die unbenutzte Partition:
$ cd tools/yf/eva_tools/
$ export PATH=.:$PATH
Im diesem Beispiel ist "eth0" die verwendete Netzwerkschnittstelle, 192.168.178.1 die IP der Fritzbox und 192.168.178.21 die IP des Rechners. Die Werte müssen gegebenenfalls angepasst werden. Bei Unklarheit gibt ip link die Namen der Schnittstellen aus.
$ ./eva_switch_system eth0 192.168.178.1 192.168.178.21
Nun muss die Box kurz vom Strom getrennt und wieder angeschlossen werden. Wenn sie erkannt wurde, erscheint folgende Meldung:
Found AVM bootloader: AVM EVA Version 1.3229 0x0 0x46409Danach startet die Box in die neue (noch ungenutzte) Partition.
Current system selected: 1
New system selected: 0
New value set, rebooting the device ...
Wichtig:
Die Fritzbox muss über einen Switch mit dem PC verbunden sein, andernfalls wacht die Netzwerkschnittstelle meist erst auf, wenn der Boot-Einsprungpunkt vorbei ist, und der Partitionswechsel wird NICHT vollzogen.
- InMemory Image hochladen
Jetzt kann das erstellte Image hochgeladen werden:
$ eval $(sudo ./eva_discover INTERFACE=enp7s0 FROM=192.168.178.21 TO=192.168.178.1 BLIP=1 HOLD=0); echo "EVA_FOUND=$EVA_FOUND"; echo "EVA_IP=$EVA_IP"; [ "$EVA_FOUND" = "1" ] && ./eva_to_memory myimage.bin $EVA_IP
Die Fritzbox wieder kurz vom Strom trennen und erneut anschließen. Der Erfolg wird durch eine Meldung angezeigt:
EVA_FOUND=1
EVA_IP=192.168.178.1
Found AVM bootloader: AVM EVA Version 1.3229 0x0 0x46409
Found hardware revision: 225
Memory size is 0x08000000 (128 MB)
Memory size limited to 128 MB
Image size is 0x179d100 (23 MB)
Setting temporary memory size to: 0x06862f00
Setting temporary kernel args to: mtdram1=0x86862f00,0x88000000
Image uploaded to device.
Die Box sollte nun mit der modifizierten Firmware booten. Wenn nötig, kann mit Schritt 3 auch wieder die vorherige Partition als aktiv markiert werden und so zum Originalzustand zurückgekehrt werden.
Grundsätzlich sollte dieses Vorgehen auch für andere Boxen von 1&1 funktionieren.
Quellen
https://www.ip-phone-forum.de/threads/fritz-box-7580-firmware-153-06-90-telnet-service-freischalten-geht-auch-f%C3%BCr-7560-und-7590.296678/
https://www.ip-phone-forum.de/threads/7590-branding-%C3%A4ndern-freetz-flashen.298603/#post-2265245
https://blog.loetzimmer.de/2017/11/fritzbox-7490-mit-freetz-fur-unbound.html
http://freetz.org/wiki/help/howtos/development/repack_fw#Verwendungvonfwmodimnofreetz-Modus
http://freetz.org/wiki/help/howtos/development/sign_image
Quellen
https://www.ip-phone-forum.de/threads/fritz-box-7580-firmware-153-06-90-telnet-service-freischalten-geht-auch-f%C3%BCr-7560-und-7590.296678/
https://www.ip-phone-forum.de/threads/7590-branding-%C3%A4ndern-freetz-flashen.298603/#post-2265245
https://blog.loetzimmer.de/2017/11/fritzbox-7490-mit-freetz-fur-unbound.html
http://freetz.org/wiki/help/howtos/development/repack_fw#Verwendungvonfwmodimnofreetz-Modus
http://freetz.org/wiki/help/howtos/development/sign_image
zuletzt aktualisiert 01/2021
No comments:
Post a Comment