View Single Post
Old 15-06-2019, 21:38  
Yrbaf
Senior Member
 
Iscritto dal: Dec 2015
Messaggi: 6208
Quote:
Originariamente inviato da Yrbaf Guarda i messaggi
L'immagine così compilata non è però flashabile (o almeno in modo non facile) come avevo detto settimane fa.
Ma per cominciare ci fermiamo qui, inutile andare avanti se non arrivate neanche a compilare una immagine.
NB: Quello scritto sotto vale solo per Freetz 2.0, per Freetz-NG ci dovrebbe essere un metodo semplificato (che io non ho provato mai e quindi non vi descrivo) che usa il comando tools/push_firmware (da lanciare alla fine del make, usare tools/push_firmware -h per consultare Help).
Probabilmente (ripeto non provato personalmente) sotto Freetz-NG basta fare in sequenza:
make
make push_firmware

per costruire il firmware e poi caricarlo sul router

Parte per Freetz 2.0:

Purtroppo da FritzOs 6.5 in poi non si può più flashare immagini non firmate digitalmente e quindi poi non si può caricare direttamente da Web Gui (da bootloader si può sempre invece) la ns immagine Freetz (o Freetz-ng) se essa non è firmata.
E quella che avete creato con la guida finora scritta è di tipo non firmato.

Ipotizzando che riusciate a compilare le immagini allora la procedura per avere una immagine flashabile sarebbe :
  • Firmare l'immagine con una ns chiave (dato che non possiamo avere quella di AVM)
  • Creare il firmware in una versione speciale (detta in-memory) adatta al caricamento a mano via bootloader.
  • Flashare a mano la ns immagine firmata e di tipo .in-memory

Dopo che la ns immagine sarà stata caricata verrà inserita la ns chiave di firma sul router ed il router da ora in poi accetterà tutte le immagini (normali, non quelle in-memory) che sono firmate con la stessa chiave (oltre a naturalmente accettare ancora le immagini firmate da chiavi AVM).
Alias da quel momento in poi si potranno flashare altre immagini di Freetz (da noi fatte perché solo noi abbiamo la ns chiave) via WebGui senza più la procedura manuale e senza più necessità di creare la versione speciale in-memory.
Al limite c'è il rischio (da verificare non sono sicuro succeda davvero) che quando caricherete un firmware originale AVM sia rimossa la ns chiave obbligandoci a ripassare dal metodo manuale.

NB: L'operazione di firma potrebbe essere saltata dato che da bootloader si dovrebbe poter caricare anche immagini non firmate, ma così facendo si dovrebbe sempre passare da bootloader per ogni nuova immagine che faremo con scomodità.


Parte seconda: Creazione della chiave di firma, firma dell'immagine e creazione versione in.memory
  1. Abilitare Level of user competence su Expert (altrimenti non avrete accesso alle opzioni necessarie)
  2. Recarsi in fondo nelle opzioni del BuildSystem e scegliere Firmware packaging (fwmod) options e nel sottomenu che comparirà:
    1. Impostare ad attivo (flaggare insomma) Sign image
    2. Inserire una password per la chiave nella voce successiva Password of the private key to be used for signing
    3. Impostare ad attivo Create in-memory image file
  3. Salvare ed uscire
  4. Eseguire
    Codice:
    make
    per fare costruire il firmware.
La procedura avviata da make genererà per noi le chiavi di firma che troverete poi nella vs home (non nella cartella di freetz) sotto il nome .freetz.image_signing.qualcosa (sono 4 file)
Abbiate cura di conservare tali file per il futuro (e di ricordarvi la password scelta) e di tenerli nella home dell'utente che compilerà altri fw firmati.

Sempre la stessa procedura genererà il firmware che come al solito troverete dentro la cartella images, questa volta in due versioni: normale (ma firmato) e in.memory (es. 7590_07.10-freetz-master-20190612-274a186f8.en_20190615-212249.image.in-memory)

Finché terrete il flag attivo su Sign image ed i file delle chiavi nella vs Home, tutti i futuri build di firmware saranno automaticamente firmati.
Futuri build vi chiederanno (durante il make process) la password della chiave di firma al fine di completare la firma del firmware (altrimenti senza o sbagliandola faranno comunque una immagine ma la indicheranno come non firmata, es. 7590_07.10-freetz-master-20190530-31980a917.en_20190531-192024.image.unsigned)

Ora potete anche togliere il flag da Create in-memory image file dato che ci dovrebbe bastare una sola immagine di quel tipo.

Nella prossima parte come caricare il tutto finalmente sul FritzBox

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