[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)

  • 570 Risposte
  • 39965 Visite

0 Utenti e 8 Visitatori stanno visualizzando questo topic.

Offline smx129

  • Nuovo Iscritto
  • *
  • 9
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #555 il: 03 Novembre 2019, 19:52 »
Beh si potrebbe cominciare abilitando opzioni e moduli normalmente non abilitabili.
Purtroppo tutti i BCM63138 usano molti blob e moduli kernel specifici, quindi effettivamente un porting alle versioni più recenti è molto difficile - quasi impossibile (a meno di rendere compatibili i moduli correnti o, peggio ancora, rendere tutto open).

C'è questo sito che contiene alcune info su come funziona il DSP ADSL (https://bcm63xx.sipsolutions.net/Specification.html) ma non è completo.
E' interessante notare che, anche se il SOC principale è ARM Dual Core, la CPU xDSL rimane un Mips big endian.

Il file adsl_phy.bin è un binario raw MIPS Big Endian.
il SOC riserva uno spazio in memoria per esso, e carica il file all'indirizzo "host" 0xcfd00000, "virtuale" 0x10500000.
Se volete osservare cosa fa adsl_phy.bin in un qualsiasi disassembler, caricatelo all'indirizzo 0x10500000 come Mips32 BE

Codice: [Seleziona]
[   24.319000] BcmAdsl_Initialize=0xBF0DF028, g_pFnNotifyCallback=0xBF11B704
[   24.326000] AdslCoreSetSDRAMBaseAddr: pAddr=0x0FD00000 sdramPageAddr=0xCF800000
[   24.395000] BcmAdslCoreCalibrate: (cnt1-cnt)=0x03934b16, adslCoreCyclesPerMs=999744, BCMOS_MSEC_PER_TICK =1
[   24.415000] DYING GASP IRQ Disabled
[   24.434000] DYING GASP IRQ Enabled
[   24.491000] AdslCoreSetSdramImageAddr: lmem2=0x10500000, pgSize=0x800000 sdramSize=0x19E370
[   24.499000] AdslCoreSetSdramImageAddr: lmem2(0x500000) vs ADSL_PHY_SDRAM_BIAS(0x500000); origAddr=0xCFD00000 newAddr=0xCFD00000
[   24.511000] pSdramPHY=0xCFFFFFF8, 0x17AD0E 0xDEADBEEF
[   24.516000] AdslCoreSetSdramImageAddr: sdramPageAddr=0xcf800000, sdramImageAddr=0xcfd00000, sdramPhyImageAddr=0x10500000
[   24.528000] *** AdslCoreSetXfaceOffset: data[0]=0xFFFFFE6F data[1]=0x190 ***
[   24.535000] *** XfaceOffset: 0x190 => 0x190 ***
[   24.802000] *** AdslCoreSetSdramTrueSize: data[0]=0x3733DDFF data[1]=0xC8CC2200 ***
[   24.809000] *** AdslCoreSetSdramTrueSize: data[0]=0xFFDD3337 data[1]=0x22CCC8 ***
[   24.816000] *** PhySdramSize got adjusted: 0x19E370 => 0x22CCC8 ***
[   24.823000] AdslCoreSharedMemInit: shareMemSize=865040(865040)
[   24.829000] __AdslCoreHwReset: pAdslX=0xfc700190
[   24.834000] __AdslCoreHwReset: pAdslX->sdramBaseAddr=0x0000d0af, pAdslX->gfcTable[]=0x0000d0cf, adslCorePhyDesc.sdramImageAddr=0xcfd00000
[   24.868000] AdslCoreHwReset:  pLocSbSta=d40b8000 bkupThreshold=3072
[   24.875000] AdslCoreHwReset:  AdslOemDataAddr = 0xCFE63D2C, time=19 ms
[   24.885000] VersionInfo: A2pvfbH043g.d26q

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #556 il: 03 Novembre 2019, 22:25 »
Sì e poi c'è anche un sacco di roba nella (relativamente) piccola parte open che andrebbe portata. Alla fine viene fuori una n distribuzione Linux per broadcom tipo iopsyswrt di cui però non disponiamo le opportune licenze. Di sicuro è più ragionevole abilitare e patchare quello che abbiamo già. Intanto sorgenti del kernel 3.4 o 4.1 specifici per questa famiglia VBNT-O/V non ce ne hanno mandati. Abbiamo solo I vecchi 3.4 e I nuovi 4.1 della famiglia VANT-W, oltre che dei vecchi 3.4 per la famiglia VANT-F che però era ancora sul 63268 mips.

Offline smx129

  • Nuovo Iscritto
  • *
  • 9
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #557 il: 04 Novembre 2019, 18:39 »
@LuKePicci lo so che non sono gli stessi e non includono gli stessi drivers, ma giusto per info ho caricato i sorgenti dell'Asus DSL-AC88U, che è brcm63138 anche lui.
Qui il mirror: https://github.com/smx-smx/bcm63138

Nel frattempo sono riuscito a far girare GCC 9 con la uclibc in nostro possesso, mancano solo alcuni aggiustamenti e poi dovrei avere un sistema un po' più recente per produrre pacchetti  :)

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #558 il: 04 Novembre 2019, 21:00 »
la buildroot più simile non technicolor che ho trovato da altri device col 63138 è quella dell'inteno DG400, quella dell'AC88 l'avevo guardata alla ricerca del driver spu ma alcune cose non erano altrettanto aggiornate.

Offline smx129

  • Nuovo Iscritto
  • *
  • 9
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #559 il: 10 Novembre 2019, 19:39 »
Ok, dopo un pò di analisi ho raccolto le info seguenti:
ci sono 4 step di bootloader

boot0: BootROM (BTRM v1.6) - non ho ancora ottenuto un dump ma ho notato che il codice salta all'indirizzo 0 in caso di fallimento.

Layout flash
0x00000000 - 0x00010000 | reserved block
0x00010000 - 0x00020000 | boot1: CFE Preloader
0x00020000 - 0x00060000 | boot2: CFE Meminit + boot3 decrypter
0x00060000 - 0x00080000 | boot3: OS Loader + recovery, LZMA compressed with 12 bytes header
0x00080000 - 0x00100000 | unknown

boot1 load address: 0x80710000
boot2 load address: 0x80710000 (sovrascrive boot1)
boot3 load address: indicato nell'header, comunque 0x00F00000

boot1 attiva il Secure Boot mediante scrittura di un EFUSE (quando avviato in fabbrica).

La BEK (16 bytes) e la MCV (256 bytes) sono ottenute all'indirizzo 0x8073F000
Non sono riuscito a leggere tale indirizzo da Linux, quindi non so se viene rilocato o disattivato dopo il boot.

E' disponibile una funzionalità di sblocco bootloader, ma funziona SOLO se il tag RIP_ID_UNLOCK_TAG è presente nella RIP (storage su flash cifrato con la ECK)
I tag sulla RIP possono essere firmati. La firma è indicata dalla presenza di un flag.
Il bootloader si accerta che gli elementi essenziali quali la ECK abbiano tale bit, quindi non possiamo rimuoverlo e sperare che vada bene.

Ad ogni modo, il RIP_ID_UNLOCK_TAG è generato partendo dai dati della OTP quali S/N e chipid, leggibili da
- /proc/efu
- /proc/otp

ed è firmato digitalmente

Quindi non possiamo forgiarne uno nostro, per lo meno con le info che ho adesso

boot3 fa riferimento ai comandi shell di CFE, ma non ho capito se sono in qualche modo accessibili o sono disattivati a compile time.
La presenza di un paio di funzioni hard-wired a "return 0" mi fa pensare che sia disattivato in produzione, ma comunque del codice sia rimasto

EDIT: boot3 fa riferimento ad una password per la JTAG, quindi sembrerebbe che anche quella sia bloccata
« Ultima modifica: 10 Novembre 2019, 19:43 da smx129 »

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #560 il: 10 Novembre 2019, 20:28 »
Confermo tutto, erano le stesse conclusioni a cui eravamo arrivati insieme a chi ha scritto secr, lui ci aveva lavorato ai vecchi tempi delle release 8/10, quindi prima di ARM ma la sostanza è quella. Inoltre ti dico che (almeno sui modelli mips più vecchi) se ti attacchi in jtag prima che boot3 metta in opera l'accesso tramite password riesci a dialogare col SoC ma non avendo ancora inizializzato nulla non te ne fai molto se non sai come inizializzare tu a mano la ram. Quelli che hai chiamato boot1 e boot2 li abbiamo chiamati in passato stage1, boot3 lo abbiamo chiamato stage2. Se ti capita di fare le stesse analisi su un device più vecchio sappi che in alcune versioni del bootloader boot3 è anche/solo criptato oltre/invece che compresso. Da quello che avevamo visto sembrava quasi che tch avesse prima deciso di implementare una cosa del genere poi ci abbia ripensato. Non resta che trovare la MCV, capire se è rimpiazzabile e eventualmente rimpiazzare l'intera eripv2.

Offline FrancYescO

  • Esperto
  • ****
  • 1425
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #561 il: 11 Novembre 2019, 12:08 »
@smx129 stai analizzando dump fatti con dd?

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #562 il: 11 Novembre 2019, 16:20 »
Scommetto di sì, la vedo dura fare quello che ha fatto a monte dell'FTL/controller nand.

Offline Buta4kun

  • Nuovo Iscritto
  • *
  • 5
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #563 il: 11 Novembre 2019, 16:56 »
Scusate ragazzi... Una domanda basilare, lontana anni luce dal contenuto dei post tecnici... Ho sbloccato il Fastcoso e installato la GUI mod.
Domanda a bruciapelo: è possibile (in modo semplice...) impostare il router in modalità bridge in modo da permettere al mio glorioso DGN3500 (sempre in modalità bridge, ma client) di accedere alla LAN (e quindi ad internet, utilizzando il fastcoso come gateaway...) tramite wifi?
Ringrazio tutti coloro i quali vorranno rispondermi...
Un saluto ed un ringraziamento!

Offline larsen64it

  • Esperto
  • ****
  • 1082
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #564 il: 11 Novembre 2019, 17:38 »
Per il Fastcoso ci dovrebbe essere un thread apposito.

P.S. Certo che chiamare "Fastcoso" un router che potrebbe anche essere orribile, ma di certo non invogli qualcuno che si danna l'anima  per renderlo friendly o quantomeno usabile a darti delle spiegazioni fast. Vedi tu.

Offline Buta4kun

  • Nuovo Iscritto
  • *
  • 5
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #565 il: 11 Novembre 2019, 17:53 »
Massimo rispetto ed i miei ringraziamenti a coloro i quali si dannano l'anima, Larsen. Non volevo essere irrispettoso. Lo chiamo così affettuosamente... ;-)
Grazie! Cercherò meglio...

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #566 il: 11 Novembre 2019, 19:51 »
La possibilità esiste ma non sono sicuro di aver capito cosa vuoi fare. Se ho capito, alla fine avresti il dgnd3500 che si connette come client al fastgate, e vuoi che funga normalmente da router in quella condizione, avendo però messo in bridge il wifi sul modem/wan. Penso tu ci possa riuscire a patto che il dgnd3500 sappia riuscirci. Parti da lì, configuralo come client wifi e mettilo in modalità router con connessione dhcp (è una funzione tipica dei router per WISP, ne avevo uno TP-Link che lo faceva fare), la sua wifi finirebbe con l'essere dedicata a questo. Va da se che dipende dal suo firmware, con openwrt anche su quello sarebbe forse banale ma non so come è messo a livello di supporto. Poi, se ci riesci, torna qui e ti spiego come mettere il wifi (uno dei due, poi decidiamo quale) nel bridge wan, poi alla fine torni sul dgnd3500 cambi la connessione da dhcp a pppoe e hai finito.

La wifi da mettere nel bridge wan conviene definirla da zero invece che usare una di quelle esistenti (principale, guest, wowfi).
« Ultima modifica: 11 Novembre 2019, 19:55 da LuKePicci »

Offline smx129

  • Nuovo Iscritto
  • *
  • 9
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #567 il: 11 Novembre 2019, 23:57 »
@FrancYescO sì, sono dump dd

Offline Buta4kun

  • Nuovo Iscritto
  • *
  • 5
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #568 il: 12 Novembre 2019, 01:43 »
Ti ringrazio, LukePicci.
Quello che volevo fare è un collegamento bridge WI-FI tra il Fastgate, con funzione di modem e router DHCP, ed il Netgear (al quale collegare periferiche ethernet non raggiungibili da una linea fisica).
Sono tre ore che ci sto provando. Sebbene il Netgear "veda" il Fastgate tramite rete wifi, l'accesso ad internet è precluso perchè il Fastgate non "vede" il Netgear.
Solo sul Netgear è possiible impostare la funzionalità "Bridge mode". Sul Fastgate non vedo come poterla attivare (parto dal presupposto che entrambi i router debbano essere configurati in bridge mode).
Siccome mi sono stufato di perdere tempo, mi arrendo alla mia incapacità. Acquisterò una coppia di powerline (tipo le PL1000 di Netgear) e buonanotte...
Ringrazio per la collaborazione!
Un saluto

Offline LuKePicci

  • Esperto
  • ****
  • 1035
Re:[GUIDA] Sblocco/rooting FASTGate DGA4131 (VBNT-O)
« Risposta #569 il: 12 Novembre 2019, 17:23 »
Solo il fastgate andava messo in bridge  tra la porta del modem ed una singola wifi creata ad-hoc, sicuramente non semplice, ma forse si poteva fare.