Kleine Korrektur ... es geht um eine Provider-Konfiguration im Flash (/var/flash/provideradditive.tar, die normalerweise gar nicht als Node vorhanden ist, ähnlich wie die 87 (0x57) mit den "System geändert"-Flags, die intern "fwattrib" heißt) und nicht um die "providers-049.tar" in den Standardeinstellungen (/etc/default.$CONFIG_PRODUKT/$OEM) im SquashFS, letztere hat mit der "additive"-Konfiguration nur am Rande zu tun.
Wie genau der Provider diese Konfiguration jetzt in eine Box kriegt, ist m.W. aber auch noch nirgendwo beschrieben (genauso wenig wie der korrekte Inhalt einer per USB automatisch zu importierenden Datei) ... eine Behandlung dieser Einstellmöglichkeit findet sich sowohl im ctlmgr als auch in der libcfgimpexp.so.
Der Eintrag im Urlader-Environment hat wohl nur eine Schutzfunktion für den Inhalt des TFFS ... bei Werkseinstellungen bleibt dieser Inhalt ja erhalten (die provideradditive.tar hat theoretisch die Minor-ID 29 (0x1D) im TFFS und alles kleiner 100 wird dabei nicht gelöscht) und das Löschen über Recovery wird durch die Weigerung des Windows-Programms, wenn es eine nicht leere "provider"-Angabe (ID 451) im Environment findet, verhindert. Es ist nicht einmal ganz einfach zu ermitteln, ob der Wert der Einstellung tatsächlich irgendwelche abweichenden Abläufe auslöst ... m.W. ist dort lediglich "additive" hinterlegt.
Ich habe eben auch noch keine Box mit "provider-additive"-Konfiguration selbst in der Hand gehabt, aber - nur nach meinem Verständnis und anhand von "Spurensuche" in der Firmware - ich würde behaupten, daß der "active_provider"-Eintrag in der ar7.cfg das Vorhandensein einer solchen Konfiguration anzeigt und der ctlmgr beim Erkennen dieser Einstellung den passenden Inode-Eintrag unter /var/flash erst selbst erzeugt und dann die Daten aus diesem tar-File liest. Soweit man mir das bisher berichtet hat, ist jedenfalls auf solchen Boxen ein char-Device für die provideradditive.tar irgendwann mal vorhanden und da es nicht im Skript-Code angelegt wird wie alle anderen, muß es irgendwo an einer Fundstelle in binärem Code sein und da kommt eben nur der ctlmgr (oder libcfgimpexp.so, aber die ist eigentlich nur für den Im- und Export der Einstellungen zuständig) in Frage, wenn der Dateiname nirgendwo anders zu finden ist.
Damit sollte es eben ausreichend sein, die provideradditive.tar aus einer solchen Box zu sichern und dabei auch noch die Werte aus dem Urlader-Environment irgendwo abzuspeichern. Erstens stehen dort dann MAC-Adresse, WLAN-Key und CWMP-Credentials der "Quell-Box" drin und zweitens findet man da auch den richtigen Wert für die "provider"-Einstellung.
In einer anderen Box muß man dann eigentlich nur das gesicherte tar-Archiv in ein char-Device für genau dieselbe Minor-ID des TFFS kopieren, notfalls legt man das mit "mknod" (oder bequemer mit "mkconfigfile") vorher selbst an. Dann noch die "provider"-Einstellung im Urlader vorgenommen (und event. noch den "active_provider" in der ar7.cfg richtig gesetzt, wobei ich das erst bei einem zweiten Versuch machen würde) und bei einem Neustart sollte die Provider-Konfiguration wirksam werden. M.W. ist das in allererster Linie ohnehin nur die Einstellung für den richtigen ACS in der tr069.cfg, event. wird aber auch hier noch etwas in der ar7.cfg eingestellt, z.B. abweichende Parameter einer DSL-Verbindung, denn die wäre ja die Voraussetzung für einen erfolgreichen Kontakt zu einem ACS beim Provider.
Bis hier die Theorie ... in der Praxis konnte ich das selbst bisher nur teilweise testen. Interessant ist auch noch, daß diese Provider-Konfiguration wohl gar nicht immer mit exportiert wird, obwohl es auch in der libcfgimpexp.so entsprechende Werte für Angaben im Kopf so einer Datei gibt:
Code:
# strings lib/libcfgimpexp.so | grep Provider.*=
ProviderDefaultConfig=yes
[COLOR="#FF0000"]ProviderAdditiveConfig=yes[/COLOR]
Ich würde daher darauf tippen, daß man mit so einer Angabe ein spezielles "export"-File erstellen kann, das nur aus den "diff"-Files für die Provider-Einstellungen besteht (nicht wirklich im "diff"-Format, sondern als "Misch-File" wie bei allcfgconv) und dessen Bestandteile dann eben nicht direkt angewendet, sondern zu dieser "provideradditive.tar" zusammengepackt werden. Das könnte zumindest
ein denkbarer Weg sein, wie man solche Daten in die Box kriegt, wenn das nicht bereits bei der Produktion erfolgt.
Natürlich kann das genauso gut auch mit einem "speziellen" Recovery-Programm erfolgen, was dann eben in den beiden zu schreibenden TFFS-Partitionen bereits die notwendigen Daten im an die Box zu übertragenden Image hat. Dabei reicht es ja sogar aus, nur MTD3 und MTD4 zu schreiben, das eigentliche System müßte dabei ja gar nicht angefaßt werden.
Bei der ersten Methode ginge es halt über die Box selbst - aber wohl erst nachträglich, denn ein Import ohne gesetztes Kennwort geht wohl nicht mehr und dann müßte man nach so einer Anpassung erst noch einmal "Werkseinstellungen" laden. Bei der zweiten braucht es einen "intelligenten" FTP-Client oder eben ein spezielles Programm, was das alles unter einem Dach handhaben kann - aber auch das wird sicherlich nicht unbedingt in "Handarbeit" ausgeführt wie das Recovern beim Benutzer ... wobei man manchmal da auch zu viel erwartet und es u.U. dann eben genau so läuft. Die Trivialität im realen Leben bei vielen Vorgängen an solchen Stellen ist immer wieder verblüffend.
Das sind nur theoretische Überlegungen auf der Basis einiger Fundstellen in der Firmware, wie es funktionieren
könnte ... ich habe die hier eigentlich nur mal gesammelt aufgeschrieben (und korrigiere Fehler gerne, wenn man mir sagt, worin sie bestehen), damit diese immer wieder auftauchenden Fragen (was ist das, wie kommt das, kriege ich das auch hin) vielleicht mal eine Referenz finden. Um das bis ins Detail selbst auszuprobieren, fehlen mir auch Daten aus solchen Boxen, mit denen man das mal ordentlich vergleichen könnte - daher beim Ausprobieren bitte auch das eigene (Nach-)Denken nicht vernachlässigen.
Wenn man allerdings wie hier eine funktionierende "additive"-Box und eine zweite zum Probieren hat, die man auch noch anstelle der ersten anschließen kann, wenn man denkt, es könnte passen ... wieviel idealer sollen denn die Testbedingungen noch sein?