@BuchIT:
Alles logisch und verständlich, was Inexio Dir da schreibt, bis zu Deiner eigenen Schlußfolgerung:
Also muss ja irgendwie ein Downgrade möglich sein...
Es wäre ja nun beileibe nicht der erste Anbieter, der mit irgendwelchen Textbausteinen arbeitet und ob sich die Notwendigkeit der Verwendung des Recovery-Programms bei einem Downgrade von der 06.50 auf eine vorherige Version tatsächlich schon bis zu Deinem Provider herumgesprochen hätte, darf man bezweifeln.
Wenn diese Notwendigkeit denn weiterhin bestehen sollte, was ich zwar nicht genau weiß (und auch jetzt nicht testen werde), aber eine solche Änderung in letzter Minute kann ich mir wieder nicht vorstellen und meines Wissens hat AVM in keinem "Changelog" bei einer Laborversion vermerkt, daß ein Downgrade nun aus der laufenden Laborversion (bzw. der Release) heraus möglich wäre, im Gegensatz zu der vorher explizit ausgesprochenen Warnung, daß diese Laborversion nur für Boxen mit AVM- und 1&1-Einstellungen (andere haben dann eben die erwähnte providerspezifische Konfiguration, die Recovery mit dem AVM-Programm verhindert) geeignet wäre.
Hat denn schon mal jemand so ein Recovery-Programm für eine providerspezifische Version der FRITZ!Box in der Hand gehabt oder zumindest eines ausgeführt? Theoretisch ist das ja nichts weiter, als bei Schreiben des TFFS in MTD3/MTD4 noch eine (zlib-deflated) "Datei" mit ID 29 in das TFFS-Image mit einzubauen ... das ginge sowohl mit als auch ohne das Einspielen einer neuen/anderen Firmware-Version. Sollte wirklich mal jemand auf so eine Programmversion treffen, wäre ein Wireshark-Mitschnitt so einer "Sitzung" sehr interessant.
EDIT:
Also ich konnte mich nun doch nicht zurückhalten und habe es einfach mal getestet ... beim Versuch, ein 06.30-Image auf eine Box mit 06.50 zu spielen, kommt die Meldung:
Anhang anzeigen 85217
und man hat nur die Wahl, ein anderes Image auszuwählen (hier hilft es auch nicht, das 06.30-Image ein zweites Mal anzupreisen "wie sauer' Bier") oder die Box neu zu starten (weil ja schon alle möglichen Services heruntergefahren sind zu diesem Zeitpunkt).
Damit wage ich sogar mal die These, daß es bei der 06.50 generell kein Downgrade mehr gibt ... die Entscheidung für eine "ältere Version" trifft ja die /var/install:
Code:
echo "check Firmware Version: xx.${newFWver}"
##################################################################################
# BB (neu) < BB (aktuell) : update rueckfrage anstossen
# BB (neu) = BB (aktuell) && CC (neu) < CC (aktuell) : update rueckfrage anstossen
##################################################################################
if [ "$middle_newFWver" -lt "$middle_currFWver" ] ; then
echo "warning: Firmware downgrade detected"
echo "set INFO led to off (modul=7, state=1)"
/bin/update_led_off
# behaviour for devices which basically are downgradable
exit $INSTALL_DOWNGRADE_NEEDED
else
echo "DEBUG: $middle_newFWver >= $middle_currFWver"
fi
if [ "$middle_newFWver" -eq "$middle_currFWver" ] ; then
if [ "$minor_newFWver" -lt "$minor_currFWver" ] ; then
echo "warning: Firmware downgrade detected"
echo "set INFO led to off (modul=7, state=1)"
/bin/update_led_off
# behaviour for devices which basically are downgradable
[COLOR="#FF0000"] exit $INSTALL_DOWNGRADE_NEEDED[/COLOR] <=== das ist die Stelle, wo der Vergleich 06.50 vs. 06.30 dann rauskommt
else
echo "DEBUG: $minor_newFWver >= $minor_currFWver"
fi
else
echo "DEBUG: $middle_newFWver > $middle_currFWver"
fi
(wobei ich die Konstruktion mit zweimal derselben identischen Fehlerbehandlung bei "DOWNGRADE_NEEDED" nicht verstehe, vielleicht ja auch nur ein "Blinddarm").
Da dort gar keine Information übermittelt wird, wieviel älter die neue Firmware-Version ist, sehe ich noch nicht, wie das bei einer 06.55 auf 06.50 dann funktionieren sollte, solange das Install-Skript keinen abweichenden Return-Code erzeugt. Würde so ein älteres install-Skript irgendwie von der Firmware dann doch mit dem "-f" aufgerufen, klappte auch das Downgrade eigentlich wieder ... ich sehe zumindest nichts, was dagegen spräche.
Problematisch ist es halt, daß ein SquashFS-Image aus einem älteren Firmware-Image nicht gemountet werden kann, weil das SquashFS-Format 3 der neuen Firmware nicht bekannt ist. Packt man hingegen ein älteres "filesystem.image" in das "ext2-Gewand" mit dem Dummy-SquashFS-Header, ginge auch dieses wieder, denn für das Kopieren ins yaffs2-FS braucht das System ja keine Kenntnis des Aufbaus der enthaltenen "filesystem_core.squashfs". Das scheitert dann aber weiterhin daran, daß die Firmware wohl auf den Aufruf mit "/var/install -f" seit Version 06.50 verzichtet.
Damit bleibt nur der Weg über Recovery (oder entsprechende von AVM nicht autorisierte/favorisierte Änderungen), wenn man von der 06.50 auf irgendeine kleinere Version möchte und die o.a. Bemerkungen zur providerspezifischen Konfiguration und dem AVM-Recovery-Programm (zumindest des derzeitigen Standes) bleiben gültig.