RGH Xbox 360 (Reset Glitch Hack)

Perchè? Percome?

Ricordando che l'unico exploit noto per 360 è presente nel kernel 4532 ed inferiori (gli stessi su cui è utilizzabile il metodo King Kong), e che la 360 è la prima console mainstream con un'efficace sistema anti-downgrade, si evince la necessità di aggirare il secondo per arrivare al primo.

Esistono fondamentalmente due principali modi per farlo: l'SMC Hack (scorrettamente ma molto più comunemente noto come "JTAG"), in cui la console "fa da chip per sè stessa", e l'RGH che usa un chip esterno, detto glitcher, per disturbare il processore al momento giusto e saltare alcuni controlli.

Ci sono in realtà multiple variazioni sul tema, considerando non solo le diverse interfacce e tecnologie presenti su diversi modelli, ma anche diverse compatibilità e prestazioni di queste varianti, diverse difficoltà di installazione, e che diversi chip...

Ma come funziona in linea di massima una 360 modificata con RGH?

Avremo essenzialmente una NAND contenente un sistema operativo non firmato, ed un chip che tenterà di far saltare il controllo ed osservare il risultato: se l'avvio fallisce, riavvierà la console e riproverà, potenzialmente all'infinito.

Di fatto, allo stato dell'arte attuale, 30 secondi sono già considerati un tempo molto lungo per un'installazione soddisfacente, mentre in passato anche 2 minuti erano considerati ragionevoli.

Considerando che, esattamente come sulla precedente console di Microsoft, la modifica è stata fondamentalmente inventata per avviarci Linux, la prima cosa che si andrà ad installare ed eseguire come sistema operativo sarà fondamentalmente XeLL (Xenon Linux Loader) o meglio uno dei suoi successori, quale Xell Reloaded. Questo homebrew è l'equivalente di GentooX Loader per la prima Xbox e vagamente paragonabile a Boot9Strap/Fastboot3DS nella scena Nintendo, in quanto non direttamente compatibile con il sistema operativo ufficiale ma utilissimo per avviare appunto Linux (od altri homebrew indipendenti dal sistema operativo), nonchè per dumpare l'identità della console o riscrivere la NAND senza un programmatore esterno. Per motivi storici, questa immagine "solo Xell" è popolarmente detta ECC

Una volta che avremo ottenuto grazie a Xell la CPU Key, ed ovviamente un backup della NAND allo stato iniziale (senza Xell) potremo poi dilettarci con XeBuild a creare un sistema operativo personalizzato, utilizzante il famoso kernel 4532 + FreeBoot + DashLaunch + i file dell'ultimo aggiornamento ufficiale per avere un sistema a prima vista uguale ad uno ufficiale ma con importanti differenze dietro le scene, quali il poter avviare Xell accendendo la console con Eject e varie patch per avviare titoli non firmati o regolare la velocità delle ventole; naturalmente sono possibili moltissime personalizzazioni, sia all'atto della creazione con XeBuild che in seguito.

Scelta del chip e del metodo

Ah già, i chip: è importante sapere che in linea di massima, tutti i glitcher usano lo stesso FPGA (Xilinx XC2C64A) ed i relativi firmware sono in linea di massima universali; le differenze si avranno nel circuito stampato ed altri componenti, ed ovviamente nella qualità costruttiva. Non aiuta (ma nemmeno significativamente ostacola) il fatto che la massima parte dei prodotti disponibili al giorno d'oggi siano cloni...

I pinout spesso e volentieri sono diversi.

Slim e Superslim

Se non Winchester (quindi perciò Trinity o Corona, compatibili con RGH2 su qualsiasi versione del kernel. L'RGH2 propriamente detto è un metodo superato da S-RGH e Muffin.

Il primo è di fatto un RGH2 accelerato (dopotutto la S significa Speed), ma più sensibile alla lunghezza e posizionamento dei fili (non stabilibili a priori per via delle tolleranze produttive). Richiede anche più saldature su punti piccoli; d'altro canto è più tecnicamente pulito dell'alternativa. Il chip più usato per S-RGH è l'X360ACE V3.

Il Muffin è invece una variante semplificata dell'RGH, con tolleranze più larghe sulla lunghezza dei fili, e che consente di non dover saldare direttamente su componenti SMD (bensì solo su pad vuoti). Come contro, è associata ad un rischio di danneggiamento del southbridge nel lungo termine (usando un modo meno ortodosso di rallentare il processore, che porta ad un surriscaldamento durante i tentativi di avvio). I chip più utilizzati per questo metodo sono il CoolRunner Rev C per le Trinity e Rev D per le Corona, oppure il suo clone Matrix V1 (rispettivamente senza e con oscillatore, comunque disattivabile rimuovendo un componente).

Come abbiamo detto nell'introduzione, i chip sono in massima parte intercambiabili, ed è perciò tecnicamente possibile utilizzarne uno per fare il lavoro di un altro (applicandogli un firmware appropriato e sapendo come adattare la piedinatura), tuttavia la qualità è variabile (ad esempio, il CoolRunner è utilizzabile benissimo anche per S-RGH, il Matrix meno).

Fat

Per prima cosa parliamo dell'eccezione, ovvero le Xenon, che sono di fatto incompatibili con l'RGH. Se fossero ancora su un kernel 7371 od inferiore (ovvero non aggiornate da metà 2008 circa) si possono però modificare con JTAG. Esiste invece per le console più aggiornate (15572 e successive) un metodo chiamato R-JTOP, ibrido tra JTAG ed RGH, adattabile alle Xenon.

Per tutti i modelli Fat successivi ci sono invece molte varianti dell'RGH possibili, ma le più diffuse sono R-JTOP (sempre solo su kernel 15572 o maggiore) ed RGH 1.2, entrambe utilizzanti un chip collegato nello stesso modo ma con firmware diversi. I chip più utilizzati al giorno d'oggi sulle Fat sono sempre i CoolRunner (C o D che sia) ed i Matrix senza oscillatore.

Notiamo come, con poche ed ormai rare eccezioni, convenga aggiornare completamente la console prima di modificarla.

Scelta del programmatore

I programmatori classici (JTAG + SPI) hanno appunto due funzioni principali, di cui potremmo necessitare di entrambe, una, o nessuna:

Tra i principali abbiamo:

A maggior ragione, anche per essi uno vale l'altro, seppur con differenze di qualità, comodità, e prestazioni.

Separatamente ad essi, per le console eMMC avremo bisogno di un programmatore dedicato, ovvero di un adattatore meccanico (quale lo SD Tool di Element18592, od uno autocostruito) e di un lettore SD compatibile.

Scelta degli accessori

Attrezzi e materiali per saldatura: saldatore da circa 15~25 W con temperatura regolabile, stagno fine preferibilmente con piombo, flussante, alcool (per rimuovere il flussante), carta vetrata fine o (meglio) penna in fibra di vetro per grattare via il solder resist, e soprattutto abilità dell'operatore.

Cavi adeguati per collegare tra di loro chip, programmatore, computer, e console (dopo aver verificato cosa sia incluso con i prodotti da voi scelti):

I proprietari di console Corona che non abbiano il segnale POST_OUT collegato necessiteranno naturalmente di un Postfix Adapter (V1 o V2, sono equivalenti).

Avrete anche bisogno di un PC, preferibilmente con Windows XP/Vista/7 a 32 bit (una VM è perfettamente accettabile, se sapete come destreggiarvi per collegarci dispositivi USB). Presumendo utilizziate un programmatore Xecuter, installateci anche il .NET Framework 4, e scaricate ed estraete JRunner_V0.7 di BenMitnick, che supporta l'ultima versione ufficiale (17559).

Nastro biadesivo per fissare il chip.

...

Procedura generale per RGH

  1. Visto il gran numero di varianti, non è fattibile spiegarle individualmente: completate perciò queste istruzioni con uno schema di montaggio per il vostro chip e modello (vedi siti a fine pagina). Accertatevi di avere compreso cosa state per fare e perchè prima di farlo. Questo inoltre non è un corso di saldatura, bensì un esame.

  2. Accendere la console ed aggiornarla all'ultima versione (17559) via internet od USB. Spegnerla e scollegare tutto.

  3. Smontate la console, fino ad arrivare alla scheda madre completamente libera dal case metallico interno. Raccomando la lettura di iFixIt.

    Non è necessario rimuovere Xclamp e dissipatore, ma se sapete farlo senza danni, è una buona idea farlo e togliere la pasta termica, ormai vecchia, per poi rimetterla alla fine (guadagnandoci anche in manovrabilità della scheda madre).

  4. Identificate tutti i punti di saldatura necessari, rimuovete il solder resist, ed aggiungetevi una piccola pallina di stagno fresco.

  5. Montate fisicamente il chip nella posizione desiderata: generalmente, essa è sopra la presa video per le Fat, ed a destra del southbridge per le altre.

  6. Saldate il QSB o il cavo per la NAND.

  7. Saldate i fili/connettori del chip, facendo attenzione a rispettare il più possibile lunghezze e percorsi "standard".

  8. Collegate il programmatore al PC, ed installatene i driver. Aprite il software e verificate che venga riconosciuto. (In JRunner, apparirà il logo del vostro programmatore nell'area vuota tra i pulsanti "Write Nand" e "Nand Compare".

  9. Dopo aver verificato che non appoggi su superfici metalliche, collegate la NAND al programmatore, la scheda madre all'alimentazione (ma non accendetela!!) ed eseguite multipli backup.

    Nel caso di JRunner, è sufficiente impostare almeno 2 letture in alto a sinistra , premere "Read Nand", ed attendere i risultati. I backup verranno salvati nella cartella "output" come "nandread?.bin".

  10. Nella scheda XeBuild in alto a destra, verificate che sia selezionata la versione del sistema attuale, la scheda madre corretta, ed il tipo di exploit desiderato (ad esempio, per Muffin ed S-RGH, si selezioneranno "Glitch2" e "CR4").

  11. Cliccare "Create ECC" e salvare il file image_00000000.ecc contenente Xell.

  12. Installarlo con il pulsante "Write ECC": la console ora non sarà più avviabile senza un chip funzionante (a meno ovviamente di non ripristinare un backup pulito).

    Staccare il cavo di alimentazione della console.

  13. Scollegare il cavo NAND dal programmatore e collegare quello JTAG al chip (non è necessario scollegare il programmatore dal computer mentre si faccia ciò, ma è consigliato). Alimentare il chip.

    Selezionare in JRunner: Advanced → Custom Nand/CR functions → Xsvf → il firmware desiderato per il chip, e programmarlo. Disattivare l'alimentazione del chip e rimuovere il cavo.

  14. Se è stato rimosso il dissipatore, riapplicare la pasta termica e rimontarlo.

    Riposizionare la scheda madre nella schermatura metallica inferiore; montare e collegare la ventola.

    Collegare la console ad alimentazione e monitor/TV, ma non montare HDD od altri accessori, ed accenderla (è possibile usare un telecomando infrarossi, un controller USB, o rimontare il pannello anteriore ed usare il pulsante od un controller wireless).

    Attendere che venga visualizzato Xell (se non si avviasse in un tempo ragionevole, sospettare il chip, il suo firmware, od i collegamenti), che mostrerà dopo un po' il Fuseset, la CPU Key, e la DVD Key. Si raccomanda di scattare una foto leggibile a questa schermata, spegnere poi la console.

  15. Tornando su JRunner, verificare che in Load Source sia selezionata uno dei backup originali e non il file ECC.

    Inserire la CPU Key ottenuta nel passaggio precedente; appena completata verrà verificata, e nella scheda KV Info appariranno dettagli sulla nostra console.

  16. Verificare di nuovo i dati nella scheda XeBuild, e premere il pulsante "Create XeBuild Image".

  17. Infine dovrete programmare la nand appena creata, col nome updflash.bin, nella console: potete usare il vostro programmatore con la funzione "Write Nand", oppure metterla nella root di una chiavetta USB MBR/FAT32, inserirla nella console, accenderla, ed aspettare un paio di minuti che Xell faccia tutto da solo.

  18. Accendete la console: dovrebbe avviarsi "normalmente", escluso ovviamente il tempo aggiuntivo necessario per il glitching.

    Potete ora rimuovere dalla scheda madre il cavo per la NAND, e riassemblare completamente la console.

Avete ora una console con RGH perfettamente funzionante, avviabile con qualsiasi modo eccetto che col tasto Eject (che ora avvierà Xell).

Potete già avviare titoli non firmati, anche se giustamente vi starete chiedendo come farli apparire nella dashboard ufficiale. Ecco un valido modo di proseguire:

  1. Scaricate la versione disco di XeXMenu e masterizzatela: si avvierà senza problemi (che NON significa che ora potrete avviare dischi copiati).

    Alternativamente, potete scaricare la versione LIVE (digitale) ed usare un file manager apposito per Xbox/360 (che gestisca quindi il file system FATX) per metterlo direttamente su HDD o chiavetta formattata "per uso col sistema", ma questi programmi non sono molto affidabili... Troverete in questo caso XeXMenu nella sezione "giochi demo".

  2. Una volta entrati in XeXMenu premete RB per entrare nel file manager; se avete usato la versione disco, selezionate il lettore DVD (con le frecce ←/→ oppure X) dove troverete la cartella CODE9999, che potrete copiare in Hdd1:/Content/0000000000000000/ per installarne la versione digitale.

  3. Ora scaricate le ultime versioni di Aurora e DashLaunch; estraete tutti i file del primo in una cartella "Aurora" su una chiavetta, mentre del secondo estraete solo Installer/default.xex in una cartella "DashLaunch".

  4. Inseritela nella console e tornate in XeXMenu. Copiate la cartella Aurora nella root di Hdd1, e sempre nella root create una cartella "Homebrew" in cui copiare quella di DashLaunch.

  5. Avviate DashLaunch (o meglio, il suo configuratore) e divertitevi:

  6. Spegnete e riaccendete la console: si avvierà direttamente in Aurora (a meno che non teniate premuto RB quando l'accendiate od usciate da un titolo).

  7. Premete Start in Aurora e configurate anch'essa. Io vi raccomando:

Buon divertimento!