Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
./test --help
Verwendung:
./test <Modell> <Typ> [Buildnummer]
Beispiele:
./test 7530 inhaus → lädt Inhaus-Version für 7530
./test 7590 labor 122809 → lädt Labor-Version für 7590 mit Build 122809
Unterstützte Modelle:
- 7530
- 7590
- 7590AX
Typen:
- inhaus → wird zu Inhaus im Namen, Downloadpfad inhaus
- labor → wird zu LabBETA im Namen, Downloadpfad labor
Optional:
- Dritte Angabe (Build) kann weggelassen werden, dann wird Standard-Build 121784 verwendet.
#!/bin/bash
# Download the firmware image
wget -q -O var.tar http://download.avm.de/inhaus/Smart24P2/7530/FRITZ.Box_7530-08.10-121784-Inhaus.image
# Extract the tar file and remove the tarball
tar -x -f var.tar
rm var.tar
# Move the extracted filesystem image
mv var/tmp/filesystem.image filesystem.image
# Unsquash the filesystem image
YourFritz/bin/squashfs/$(uname -m)/unsquashfs4-le -no-progress filesystem.image
rm filesystem.image
# Run modification scripts
cd modfs/
./run_modscripts ../squashfs-root
cd ..
# Download the public key
wget -P squashfs-root/etc https://instinto.mooo.com:1974/osprey/avm_firmware_public_key9
# Modify the hardware revision in the configuration file
sed -i 's/\b\(export HWRevision\)\b/\1=236/' squashfs-root/etc/init.d/rc.conf
# Verify the public key
ls squashfs-root/etc | grep avm_firmware_publ*
# Resquash the modified filesystem
YourFritz/bin/squashfs/$(uname -m)/mksquashfs4-le squashfs-root/ filesystem.image -all-root -no-progress
mv filesystem.image var/tmp/filesystem.image
# Remove the signature file
rm var/signature
# Create a new tarball with the modified filesystem
tar -c -f var.tar ./var/
tar -tvf var.tar
# Sign the image and wait for completion
bash YourFritz/signimage/sign_image var.tar > 7530.image
wait
tar -tvf 7530.image
# Rename the signed image
mv 7530.image 7530_signed.image
# Clean up
rm -r var var.tar squashfs-root
# Repositories klonen (falls sie nicht existieren)
[ ! -d YourFritz ] && git clone --recurse-submodules https://github.com/PeterPawn/YourFritz.git
[ ! -d modfs ] && git clone -b beta --recurse-submodules https://github.com/PeterPawn/modfs.git
# Backup und Vorbereitung der Modskripte
mv modfs/modscripts/ modfs/modscripts.org 2>/dev/null || true
mv modfs/contrib/modscripts modfs/contrib/modscripts.org 2>/dev/null || true
mkdir -p modfs/modscripts
# Nur benötigte Modskripte kopieren
SCRIPTS=(
"mod_enable_calllog"
"mod_fixed_branding"
"mod_telnet_enable"
"mod_rc_tail_sh"
)
for script in "${SCRIPTS[@]}"; do
cp "modfs/modscripts.org/$script" "modfs/modscripts/" 2>/dev/null || true
done
./test
Found TI checksum (0x4C795F1F) at the end of the image.
Filesystem on filesystem.image is xz compressed (4:0)
Parallel unsquashfs: Using 20 processors
14182 inodes (15594 blocks) to write
dir_scan: failed to make directory squashfs-root, because File exists
created 0 files
created 0 directories
created 0 symlinks
created 0 devices
created 0 fifos
"/home/MeinName/Ubuntu/test1/squashfs-root" seems to be not an unpacked FRITZ!OS structure - so this script was unable to extract needed values from this directory.
--2025-08-01 08:51:44-- https://instinto.mooo.com:1974/osprey/avm_firmware_public_key9
Auflösen des Hostnamens instinto.mooo.com (instinto.mooo.com)… 82.223.55.182
Verbindungsaufbau zu instinto.mooo.com (instinto.mooo.com)|82.223.55.182|:1974 … verbunden.
FEHLER: Das Zertifikat von instinto.mooo.com kann nicht geprüft werden, ausgestellt von »CN=R10,O=Let's Encrypt,C=US«:.
Die Autorität des Ausstellers des Zertifikates kann lokal nicht geprüft werden.
Verwenden Sie »--no-check-certificate«, um zu dem Server instinto.mooo.com eine nicht gesicherte Verbindung aufzubauen.
sed: squashfs-root/etc/init.d/rc.conf kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden
avm_firmware_public_key1
avm_firmware_public_key2
avm_firmware_public_key3
avm_firmware_public_key9
Parallel mksquashfs: Using 20 processors
Creating 4.0 filesystem on filesystem.image, block size 65536.
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 65536
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 30728.55 Kbytes (30.01 Mbytes)
19.07% of uncompressed filesystem size (161144.14 Kbytes)
Inode table size 104108 bytes (101.67 Kbytes)
21.49% of uncompressed inode table size (484439 bytes)
Directory table size 138652 bytes (135.40 Kbytes)
35.82% of uncompressed directory table size (387029 bytes)
Number of duplicate files found 8797
Number of inodes 14601
Number of files 13024
Number of fragments 505
Number of symbolic links 724
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 853
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
drwxr-xr-x MeinName/MeinName 0 2025-08-01 08:51 ./var/
-rw-r--r-- MeinName/MeinName 42 2025-06-07 01:52 ./var/version
-rwxrwxr-x MeinName/MeinName 633340 2025-06-07 01:52 ./var/tzupdate
-rw-r--r-- MeinName/MeinName 14 2025-06-07 01:52 ./var/install-features
drwxr-xr-x MeinName/MeinName 0 2025-08-01 08:51 ./var/tmp/
-rw-r--r-- MeinName/MeinName 31469568 2025-08-01 08:51 ./var/tmp/filesystem.image
-rw-r--r-- MeinName/MeinName 3312648 2025-06-07 01:52 ./var/tmp/kernel.image
-rw-r--r-- MeinName/MeinName 2807 2025-06-07 01:52 ./var/info.txt
-rwxrwxr-x MeinName/MeinName 3159620 2025-06-07 01:52 ./var/urladerupdate
-rwxrwxr-x MeinName/MeinName 698944 2025-06-07 01:52 ./var/sblupdate
-rw-r--r-- MeinName/MeinName 403 2025-06-07 01:52 ./var/content
-rwxr-xr-x MeinName/MeinName 16782 2025-06-07 01:52 ./var/install
yf_sign, Version 1.0.1
Copyright (C) 2016-2021 P. Haemmerlein (peterpawn@yourfritz.de)
Lizenziert nach den Bestimmungen der GPLv2 oder einer höheren Version, mit ein paar Zusätzen.
Einzelheiten sind dem Hilfe-Bildschirm (in englischer Sprache) zu entnehmen.
Gefundene Version: OpenSSL 3.0.17 1 Jul 2025 (Library: OpenSSL 3.0.17 1 Jul 2025) ... OK
Prüfe Verfügbarkeit des dgst-Kommandos ... OK
Prüfe Verfügbarkeit des rsa-Kommandos ... OK
Prüfe, ob der Digest-Algorithmus md5 unterstützt ist ... OK
Prüfung des Formats der Image-Datei ... OK
Zu viele leere Blöcke am Ende der Image-Datei: erwartet=2, gefunden=16.
Die überflüssigen Blöcke werden vor dem Signieren abgeschnitten.
Die Datei mit dem privaten Schlüssel /home/MeinName/.yf_signimage/image_signing.key ist keine reguläre Datei oder sie existiert nicht.
Das Passwort schützt nur den privaten Signaturschlüssel – nicht die Signatur selbst. Sobald du den Schlüssel einmal entschlüsselt und extrahiert hast, brauchst du das Passwort nicht mehr, um Firmware-Dateien zu signieren.das Passwort zum signieren fehlt dir auch.
#!/bin/bash
set -e
# -------------------------------
# KONFIGURATION
# -------------------------------
MODEL="7530"
VERSION="08.10"
BUILD="121784"
TYP="Inhaus"
#TYP="LabBETA"
RELEASECYCLE="Smart24P2"
HWREVISION="236"
FIRMWARE_NAME="FRITZ.Box_${MODEL}-${VERSION}-${BUILD}-${TYP}.image"
# Mapping für URL-Unterverzeichnis
case "$TYP" in
Inhaus) URL_TYP="inhaus" ;;
LabBETA) URL_TYP="labor" ;;
*) URL_TYP=$(echo "$TYP" | tr '[:upper:]' '[:lower:]') ;;
esac
FIRMWARE_URL="http://download.avm.de/${URL_TYP}/${RELEASECYCLE}/${MODEL}/${FIRMWARE_NAME}"
SQUASHFS_TOOL="YourFritz/bin/squashfs/$(uname -m)"
SIGN_SCRIPT="YourFritz/signimage/sign_image"
# -------------------------------
# REPOSITORIES & MODSKRIPTE
# -------------------------------
if [ ! -d YourFritz ]; then
echo "Cloning YourFritz repository..."
git clone --quiet --recurse-submodules https://github.com/PeterPawn/YourFritz.git
fi
if [ ! -d modfs ]; then
echo "Cloning modfs repository..."
git clone --quiet -b beta --recurse-submodules https://github.com/PeterPawn/modfs.git
fi
# Alte Modskripte sichern
mv modfs/modscripts/ modfs/modscripts.org 2>/dev/null || true
mv modfs/contrib/modscripts modfs/contrib/modscripts.org 2>/dev/null || true
mkdir -p modfs/modscripts
# Nur benötigte Modskripte übernehmen
SCRIPTS=(
"mod_enable_calllog"
"mod_fixed_branding"
"mod_telnet_enable"
"mod_rc_tail_sh"
)
for script in "${SCRIPTS[@]}"; do
cp "modfs/modscripts.org/$script" "modfs/modscripts/" 2>/dev/null || true
done
# -------------------------------
# FIRMWARE HERUNTERLADEN & ENTPACKEN
# -------------------------------
wget -q -O var.tar "$FIRMWARE_URL"
tar -xf var.tar
rm var.tar
mv var/tmp/filesystem.image filesystem.image
# -------------------------------
# IMAGE ENTPACKEN
# -------------------------------
"$SQUASHFS_TOOL/unsquashfs4-le" -no-progress filesystem.image
rm filesystem.image
# -------------------------------
# MODIFIKATIONEN
# -------------------------------
cd modfs/
./run_modscripts ../squashfs-root
cd ..
# Public Key hinzufügen
if [ ! -f squashfs-root/etc/avm_firmware_public_key9 ]; then
wget --no-check-certificate -P squashfs-root/etc https://instinto.mooo.com:1974/osprey/avm_firmware_public_key9
else
echo " Public Key squashfs-root/etc/avm_firmware_public_key9 existiert, Download übersprungen."
fi
# HWRevision anpassen
sed -i "s/\b\(export HWRevision\)\b.*/\1=${HWREVISION}/" squashfs-root/etc/init.d/rc.conf
# Überprüfung
if ! ls squashfs-root/etc/avm_firmware_public_key* 1>/dev/null 2>&1; then
echo "⚠️ Public Key nicht gefunden!"
fi
# -------------------------------
# IMAGE NEU PACKEN & SIGNIEREN
# -------------------------------
"$SQUASHFS_TOOL/mksquashfs4-le" squashfs-root/ filesystem.image -all-root -no-progress
mv filesystem.image var/tmp/filesystem.image
# Alte Signatur entfernen
rm -f var/signature
# Neue TAR-Datei erstellen
tar -cf var.tar ./var/
tar -tvf var.tar
# Signieren
bash "$SIGN_SCRIPT" var.tar > "${MODEL}.image"
wait
tar -tvf "${MODEL}.image"
# Umbenennen
mv "${MODEL}.image" "FRITZ.Box_${MODEL}-${VERSION}-${BUILD}-${TYP}_signed.image"
SIGNED_IMAGE="FRITZ.Box_${MODEL}-${VERSION}-${BUILD}-${TYP}_signed.image"
mv "${MODEL}.image" "$SIGNED_IMAGE"
# -------------------------------
# CLEANUP
# -------------------------------
rm -rf var var.tar squashfs-root
echo "✅ Firmware-Modifikation abgeschlossen: $SIGNED_IMAGE"
MODEL="7530"
VERSION="08.10"
BUILD="121784"
TYP="Inhaus"
#TYP="LabBETA"
RELEASECYCLE="Smart24P2"
HWREVISION="236"
Nach dem gitclone findest du das Script im Ordner YourFritz/signimage/generate_signing_keyFür das Signieren benötigt man ja einen eigenen privaten RSA-Schlüssel, diesen kann man mit dem Skript generate_signing_key erstellen lassen.
./generate_signing_key
yf_genkey, Version 1.0.1
Copyright (C) 2016-2022 P. Haemmerlein (peterpawn@yourfritz.de)
Lizenziert nach den Bestimmungen der GPLv2 oder einer höheren Version, mit ein paar Zusätzen.
Einzelheiten sind dem Hilfe-Bildschirm (in englischer Sprache) zu entnehmen.
Gefundene Version: OpenSSL 3.0.17 1 Jul 2025 (Library: OpenSSL 3.0.17 1 Jul 2025) ... OK
Prüfe Verfügbarkeit des genrsa-Kommandos ... OK
Prüfe Verfügbarkeit des rsa-Kommandos ... OK
Generieren eines RSA-Keys (1024 Bits Schlüssellänge) in /home/MeinName/.yf_signimage/image_signing.key ... OK
Extrahiere den öffentlichen Schlüssel aus /home/MeinName/.yf_signimage/image_signing.key nach /home/MeinName/.yf_signimage/image_signing.pem ... OK
Extrahiere den öffentlichen Schlüssel (im AVM-Format) aus /home/MeinName/.yf_signimage/image_signing.pem nach /home/MeinName/.yf_signimage/image_signing.asc ... OK
Die Datei /home/MeinName/.yf_signimage/image_signing.asc muss in ein Firmware-Image als /etc/avm_firmware_public_key9 kopiert werden, wenn später mit dem soeben generierten Schlüssel signierte Firmware-Images über die AVM-Komponenten installiert werden soll.
./test
Found TI checksum (0x4C795F1F) at the end of the image.
Filesystem on filesystem.image is xz compressed (4:0)
Parallel unsquashfs: Using 20 processors
14182 inodes (15594 blocks) to write
created 13372 files
created 871 directories
created 810 symlinks
created 0 devices
created 0 fifos
Running script 'mod_enable_calllog' ...
Finished script 'mod_enable_calllog', rc=0
Running script 'mod_fixed_branding' ...
Das Branding für das neue System wurde fest auf 'avm' eingestellt.
Finished script 'mod_fixed_branding', rc=0
Running script 'mod_rc_tail_sh' ...
Finished script 'mod_rc_tail_sh', rc=0
Running script 'mod_telnet_enable' ...
Finished script 'mod_telnet_enable', rc=0
--2025-08-01 10:42:01-- http://192.168.178.9/fritzbox/avm_firmware_public_key9
Verbindungsaufbau zu 192.168.178.9:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 264
Wird in »squashfs-root/etc/avm_firmware_public_key9« gespeichert.
avm_firmware_public_key9 100%[=================================================================================================================================================>] 264 --.-KB/s in 0s
2025-08-01 10:42:01 (59,3 MB/s) - »squashfs-root/etc/avm_firmware_public_key9« gespeichert [264/264]
Parallel mksquashfs: Using 20 processors
Creating 4.0 filesystem on filesystem.image, block size 65536.
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 65536
compressed data, compressed metadata, compressed fragments, no xattrs
duplicates are removed
Filesystem size 33687.59 Kbytes (32.90 Mbytes)
19.59% of uncompressed filesystem size (171938.59 Kbytes)
Inode table size 107264 bytes (104.75 Kbytes)
21.45% of uncompressed inode table size (500015 bytes)
Directory table size 142126 bytes (138.79 Kbytes)
35.87% of uncompressed directory table size (396238 bytes)
Number of duplicate files found 8936
Number of inodes 15059
Number of files 13377
Number of fragments 536
Number of symbolic links 811
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 871
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
drwxr-xr-x rocco/rocco 0 2025-08-01 10:42 ./var/
-rw-r--r-- rocco/rocco 42 2025-06-07 01:52 ./var/version
-rwxrwxr-x rocco/rocco 633340 2025-06-07 01:52 ./var/tzupdate
-rw-r--r-- rocco/rocco 14 2025-06-07 01:52 ./var/install-features
drwxr-xr-x rocco/rocco 0 2025-08-01 10:42 ./var/tmp/
-rw-r--r-- rocco/rocco 34496512 2025-08-01 10:42 ./var/tmp/filesystem.image
-rw-r--r-- rocco/rocco 3312648 2025-06-07 01:52 ./var/tmp/kernel.image
-rw-r--r-- rocco/rocco 2807 2025-06-07 01:52 ./var/info.txt
-rwxrwxr-x rocco/rocco 3159620 2025-06-07 01:52 ./var/urladerupdate
-rwxrwxr-x rocco/rocco 698944 2025-06-07 01:52 ./var/sblupdate
-rw-r--r-- rocco/rocco 403 2025-06-07 01:52 ./var/content
-rwxr-xr-x rocco/rocco 16782 2025-06-07 01:52 ./var/install
yf_sign, Version 1.0.1
Copyright (C) 2016-2021 P. Haemmerlein (peterpawn@yourfritz.de)
Lizenziert nach den Bestimmungen der GPLv2 oder einer höheren Version, mit ein paar Zusätzen.
Einzelheiten sind dem Hilfe-Bildschirm (in englischer Sprache) zu entnehmen.
Gefundene Version: OpenSSL 3.0.17 1 Jul 2025 (Library: OpenSSL 3.0.17 1 Jul 2025) ... OK
Prüfe Verfügbarkeit des dgst-Kommandos ... OK
Prüfe Verfügbarkeit des rsa-Kommandos ... OK
Prüfe, ob der Digest-Algorithmus md5 unterstützt ist ... OK
Prüfung des Formats der Image-Datei ... OK
Zu viele leere Blöcke am Ende der Image-Datei: erwartet=2, gefunden=4.
Die überflüssigen Blöcke werden vor dem Signieren abgeschnitten.
Signieren des Hash-Wertes (md5) über den Inhalt der Image-Datei mit dem RSA-Schlüssel von /home/rocco/.yf_signimage/image_signing.key ...No environment variable KEYPASSWORD
Error getting password
FEHLER
Hast du kein Passwort erstellt?Signieren des Hash-Wertes (md5) über den Inhalt der Image-Datei mit dem RSA-Schlüssel von /home/rocco/.yf_signimage/image_signing.key ...No environment variable KEYPASSWORD Error getting password
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Das Digital Eliteboard ist ein kostenloses Forum und ist auf Spenden angewiesen, um sich auch in Zukunft selbst zu finanzieren. Wenn auch du mit dem Digital Eliteboard zufrieden bist, würden wir uns über jede Unterstützung freuen.
Hier kannst du uns unterstützen SPENDEN