View Single Post
Old 15-06-2019, 21:15  
Yrbaf
Senior Member
 
Iscritto dal: Dec 2015
Messaggi: 6207
Quote:
Originariamente inviato da Yrbaf Guarda i messaggi
Nella prossima parte come caricare il tutto finalmente sul FritzBox
Parte terza: Flash del firmware (di tipo in.memory) sul router (valida solo per Freetz 2.0 e da ignorare per Freetz-NG) (versione per macchine Windows)
Le macchine Linux possono usare la stessa guida (partendo dal punto 2) se si installano PowerShell per Linux con uno dei metodi spiegati qui e poi avviandola quando serve con il comando pwsh (e uscendo da essa con il comando exit)
  1. Recuperare dalla vostra LinuxBox il file di firmware .in-memory precedentemente compilato e salvarlo in qualche posto facilmente raggiungibile (alias path non troppo lungo poi da scrivere).
  2. Scaricare il package YourFritz da qui: https://github.com/PeterPawn/YourFritz
    E scompattarlo da qualche parte (possibilmente in un posto comodo da raggiungere digitando poi a mano il percorso)
  3. Impostare ip statico 192.168.178.5 (o qualuque numero tra 2 e 253) alla propria scheda di rete (subnet mask a 255.255.255.0 e gateway o vuoto o a 192.168.178.1)
  4. Aprire una powershell (non un command prompt)
  5. Verificare di avere livello untrusted tramite il comando Get-ExecutionPolicy
    Se non avete livello untrusted concedervelo dando il comando Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    Questa parte non credo serva più (e funzioni ancora) con le ultime versioni di PowerShell sotto Window 10. Al limite provare a saltarla.
  6. Con dei comandi cd raggiungere il percorso dove si è scompattato YourFritz ed entrare nella cartella eva_tools (cd eva_tools)
    Arrivati dentro la cartella giusta, con le ultime versioni di power shell sotto Windows è necessario sbloccare (probabilmente sostituisce il punto precedente ma non ne sono sicuro, magari va ancora fatto) i file che poi ci serviranno dando i comandi:
    Unblock-File .\EVA-Discover.ps1
    Unblock-File .\EVA-FTP-Client.ps1

    Questa parte prima non era necessaria e credo non sia necessaria ancora oggi sotto PowerShell per Linux.
  7. Dare il comando .\EVA-Discover.ps1 -maxWait 120 -Debug -Verbose (è obbligatoria la parte ".\")
  8. Andare a spegnere il router e dopo pochi secondi riaccenderlo, cercando di fare il tutto entro 2 min (120 sec) da quando si è premuto invio al punto 7
  9. EVA-Discover quando troverà il router, uscirà dicendo "true" o dando un errore se scadono i 120 sec prima che lo trovi.
    Se abbiamo ottenuto un "true" (ossia il router è entrato correttamente nel bootloader) proseguire con i punti successivi, sennò riprovare dal punto 7 o punti precedenti.
  10. Dare il comando .\EVA-FTP-Client.ps1 -Verbose -ScriptBlock { SwitchSystem }
    Questa parte è facoltativa ma ci permette di conservare il firmware precedente che avevamo sul router per un veloce undo in caso di problemi.
  11. Dare il comando .\EVA-FTP-Client.ps1 -Verbose -Debug -ScriptBlock { BootDeviceFromImage C:\VsPercorso\VsNomeFirmware.image.in-memory }
    Ovviamente dovete cambiare C:\VsPercorso\ nel percorso che serve a raggiungere il file del fw (che deve essere sulla macchina Windows ora) ed anche VsNomeFirmware in quello che è il vero nome del firmware (es. 7590_07.10-freetz-master-20190612-274a186f8.en_20190615-212249).
  12. Il router riceverà il firmware e lo eseguirà (non è un flash ma un boot).
    Tale firmware però si occuperà di scrivere sé stesso sulla flash al primo boot.
    C'è un po' da attendere (3-5 min credo) ed il router dovrebbe riavviarsi due volte prima di essere pronto.

Finito, si può rimettere la scheda di rete al valore che aveva prima del punto 3 (alias o ip dinamico o altro ip statico)
E se al punto 5 si aveva cambiato modello di sicurezza con Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted allora ripristinare il modello ristretto con Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted.

Il router dovrebbe essere apparentemente come prima e non noterete differenze (da un 7.01 o 7.10) entrandoci.
Se il router non dovesse ripartire correttamente (difficile ma possibile) allora potete fare ripartire il firmware ufficiale rieseguendo i punti dal 3 al 10 compreso, senza andare oltre e spegnendo e riaccendendo il router dopo il punto 10.
Anzi se volete riprovare un flash di Freetz al secondo tentativo (dopo che il primo è fallito) vi consiglio di saltare il passaggio 10 per non cambiare l'area flash su cui scrivere (tra le 2 presenti).

PS
Se non avete un firmware .in-memory pronto ma avete solo il firmware normale (tra cui magari un firmware originale di AVM), potete trasformare qualunque firmware normale in versione in-memory dando il comando
.\FirmwareImage.ps1 [FirmwareImage]::new("c:\VsPercorso\VsNomeFirmware.image").getBootableImage("c:\VsPercorso\VsNomeFirmware.image.in-memory")
E' un comando tutto su una riga (non va a capo) e vedi ragionamenti già fatti prima per VsPercorso e VsNomeFirmware

Con questo metodo teoricamente potete forzare il caricamento di qualunque firmware e credo (ma non ho provato) anche sui brandizzati.
Alias potete forzare un firmware AVM (anche un downgrade credo) su un router brandizzato senza fare il debrand, ma solo trasformando il file .image di AVM in .image.in-memory e caricandolo seguendo la guida qui sopra




Parte quarta: Ma dov'è il mio Freetz ? (valido anche per Freetz-NG)

La Gui base è la stessa (salvo abbiate fatto richieste esplicite in fase di opzioni di Freetz) di AVM ed all'indirizzo classico (esempio 192.168.1.1, se avete il router impostato su quella classe) compare l'interfaccia solita.
La parte Freetz la trovate su porta 81 (es. 192.168.1.1:81) con login admin e password freetz
Lì potete abilitare anche il servizio telnet (login root e senza password finché non la impostate voi)



PS
Freetz ha la possibilità anche di creare immagini originali con leggere modifiche ma non un vero firmware freetz, si chiama modalità no-freetz.
Questa cosa si attiva con il flag Skip modifying unpacked firmware, adding Freetz stuff che si trova nello stesso menù già visto prima ossia dove c'è la parte di firma e di creazione in-memory.

Così facendo viene creato un firmware senza tutta la roba Freetz (non ci sarà quindi la gui aggiuntiva a :81) e praticamente identico al firmware AVM con però dei file aggiunti da voi (sempre se volete aggiungere file) ed alcune patch agli script di boot/avvio servizi (alcune di serie ed altre a vs discrezione modificando il file di nome fwmod_custom che trovate nella cartella radice dell'ambiente di compilazione di freetz).
I firmware creati in modalità no-freetz saranno riconoscibili anche dal nome diverso (es. 7590_07.10.en_20190615-222526.image) che non conterrà più la parola freetz.
Tra le patch di default ce ne dovrebbe essere una che abilita il telnet.
In pratica con le impostazioni di default (senza quindi vs altre aggiunte di file o script) dovreste ottenere un firmware AVM originale ma con il servizio Telnet attivabile.

Io ci ho provato ma non sono riuscito a farlo funzionare, il firmware viene caricato e funziona.
E' in tutto e per tutto uguale all'originale (senza le parti Freetz) ma la sequenza di attivazione del telnet non mi funziona (ed il telnet non si attiva o sbaglio io qualcosa)

Ultima modifica di Yrbaf : 05-03-2023 alle 15:10. Motivo: Modifiche per Freetz-NG
Yrbaf è offline   Rispondi citando il messaggio o parte di esso