mercoledì 22 luglio 2009

IP-301 reflash via jtag


Mi si è "guastato" il telefono IP. All'accensione compaiono dei caratteri strani sul display e non si avvia. E' il modello IP301 della Perfectone (www.perfectone.net). Ipotizzo che in qualche modo si sia "sputtanata" la memoria flash che contiene il firmware e pertanto risulta bloccato, inutilizzabile. Forse sono stati i fulmini del tifone tropicale dei giorni scorsi...boh. Decido allora di ripristinare il firmware originale che a suo tempo mi ero prudenzialmente salvato.
La procedura è abbastanza semplice per gli "addetti ai lavori" con un particolare ringraziamento a "Franklin Nell'Ano Roosevelt", ai ragazzi che collaborano al progetto Openwrt ed agli sviluppatori del programma che, attraverso la porta parallela, permette il dialogo tramite porta JTAG alla CPU. Quest'ultima è una CM5000 il cui datasheet è reperibile in rete e con un minimo di passione e buona volontà (oltre alla strumentazione adatta) è possibile riscrivere da zero il firmware per migliorarne le potenzialità. Ma, cosa occorre per ripristinare il firmware originale del produttore nel proprio telefono e poter godere appieno di TUTTE le funzionalità che esso offre?
Hardware:
  • Telefono PERFECTONE IP-301
  • Un pc con porta parallela.
  • Un cavo jtag auto-costruito. Per il cavo: Un connettore 25 pin maschio possibilmente con contatti placcati oro (per la porta parallela), filo sottile per wire-wrap di ottima qualita' (facoltative: 4 resistenze da 100 ohm 1/2 watt fasce marron nero marron oro)

Software:
  • un pc con sistema GNU/Linux (io ho utilizzato la Ubuntu 9.04).
  • tjtag

Files:
  • IP301_070105.rom firmware originale (reperibile direttamente dal produttore con tanto di licenza d'uso o usare quello che ci si è salvati dal proprio telefono bloccato senza avviso da un azienda che illecitamente ha truffato impunemente molti clienti senza nemmeno chiedere scusa dell'errore commesso)
  • tjtagv2-1-4_for_Lexra_LX4380_CPU_20090122.zip (da compilare per quel sistema operativo che non voglio più nominare o per linux con un paio di modifiche ai sorgenti)
Il cavo è "semplice" da realizzare. Nel mio caso non ho utilizzato le 4 resistenze da 100 ohm. La porta parallela del portatile (che ho utilizzato), è noto, ha dei livelli di tensione diversi (più bassi) da quelli di un PC (dipende dal modello) e supportano correnti più basse di quelle indicate nelle specifiche. Occorre connettere dei pin della porta parallela ad altri pin del connettore JP10 presente nella mother board del telefono. Per aprirlo ci sono solo 4 viti con testa a croce. Il JP10 è posto "sotto" il processore principale. Sono due file di piazzole da 6 disposte parallelamente. Una di queste è quadrata ed indica il pin numero 1. La numerazione dei pin di JP10 è dispari per la fila superiore (quella con la piazzola quadrata) e pari per quella inferiore che è collegata a massa (quindi tutti i pin 2,4,6,8,10,12). Le connessioni da eseguire sono:
LPT <----------> jtag JP10
2<----100ohm--->3 (DATA0)
3<----100ohm--->9 (DATA1)
4<----100ohm--->7 (DATA2)
13<---100ohm--->5 (SELECT)
17-25<--------->2 (GND)
quindi 5 fili in tutto.

La cosa che può far bestemmiare in dodici lingue è la saldatura nel circuito stampato dei fili che provengono dalla porta parallela. Serve del flussante liquido e dello stagno sottilissimo NON RoHS in quanto fonde a temperatura inferiore ed è più facile da trattare. Temperatura della punta...250-280 gradi circa se si ha la mano svelta. Senza flussante o senza una punta a spillo del saldatore...lasciate perdere. C'è il rischio di bruciare le piazzole e sollevarle dal circuito, costringendovi a provare a saldare i fili direttamente sul microprocessore... anche questa soluzione riservata solo ai malati di mente o agli incapaci, dilettanti, incompetenti. Una buona lente di ingrandimento di dimensioni generose è quasi indispensabile (come la mia, recuperata da un proiettore di lucidi). Nel mio caso è andata bene al secondo colpo. I fili non devono essere più lunghi di 8-10 centimetri e tirandoli per collegare il connettore è facile strapparne qualcuno (oops...succede). La soluzione più "professionale" è quella di avere un connettore maschio femmina del passo previsto, anche se lo sconsiglio. Questa operazione non è cosa di tutti i giorni e pertanto meglio saldare i fili direttamente sullo stampato.

Prima di spippolare il telefono è meglio fare un backup di quello che c'è...non si sa mai.
Per iniziare, nella propria linux box è meglio rimuovere il modulo lp, uccidere CUPS ed HPoj se attivo (driver stampanti HP). Meglio fermare tutto quello che ha a che fare con la porta parallela, moduli e devices personalizzati compresi. Quindi dare i comandi:

sudo rmmod lp

sudo /etc/init.d/cups stop

sudo /etc/init.d/hpoj stop

Collegare il connettore maschio 25 pin alla porta parallela del PC ed alimentare il telefono con l'alimentatore in dotazione all'apparecchio.
Provare se il cavo è ok con :

sudo ./tjtag -probeonly

Se qualcosa non va, il programma vi elenca i motivi. Generalmente, dato che contrariamente alle indicazioni la CPU è compatibile con quella indicata, c'è qualche collegamento sbagliato o qualche saldatura fredda. Controllare con un oculare illuminato prima di procedere è una cosa saggia se non indispensabile. Okkio ai corti!!

Poi il backup del firmware::

sudo ./tjtag -backup:wholeflash

Il backup dura un pò (più di trenta minuti) ed a video è possibile seguire la percentuale di avanzamento sino alla fine. Poi ci si copia nella cartella dove si trova tjtag compilato, il file IP301_070105.rom che va rinominato in WHOLEFLASH.BIN

Quindi si lancia:

sudo ./tjtag -flash:wholeflash

Il programma inizia a cancellare la memoria e poi a scriverci il file. Ci mette una vita, sia a backuppare che a riflaschare. Armatevi di pazienza e mentre aspettate... fate un pò quello che vi pare. Potete anche stare ad osservare i bytes che scorrono sullo schermo, che fa tanto da film di fantascienza...
Alla fine si spegne il PC, si staccano i fili saldati e si rimonta il tutto. All'accensione, digitare nome utente e password di default previste dal firmware originale e tutto magicamente torna a funzionare come prima. Ottimo lavoro di hacking, perfettamente legale e legittimo contrariamente alla connotazione negativa che certa stupida stampa di regime ha dato al termine "hacker".

Il modello in questione è lo stesso noto apparecchio telefonico (ethernet) che viene dato in "omaggio" da una nota azienda. Ne regalano uno per ogni 20 euro circa di ricarica del credito. Circa due anni fa, veniva "regalato" senza avvisare i clienti che l'apparecchio è bloccato, ovvero non permette di usare altri operatori al di fuori di loro. Grazie tante per il mancato avviso, ne avete fregato chissà quanti, maledetti disonesti miliardari. Sono un consumatore, un cliente, e PAGO regolarmente in anticipo il credito che mi serve per lavorare. Perchè questo trattamento?. L'apparecchio è mio, non è in comodato d'uso e pertanto ci voglio fare quello che mi pare. Se voglio mi ri-scrivo il firmware da zero, a mio piacimento e me lo installo come piace a me. E sia ben chiaro, non è illegale. Della garanzia non mi interessa. Se si guasta ci recupero il display e lo uso per altre attività...sono ca**i miei. Vorrei, data l'occasione e spinto dall'euforia della riuscita dell'operazione, mandare a fanchiulo qualcuno:
In primis, bonariamente, quei ragazzini di quel bellissimo forum, che si sono letteralmente cagati addosso dalla paura alla prima minaccia dell'azzeccagarbugli di turno ed hanno cancellato dal forum le istruzioni per sbloccare quegli apparecchi bloccati indebitamente senza avviso ai clienti. Ragaaaaaaaazzi... gli azzeccagarbugli mentono! Se c'è odore di illecito, quelli partono alla grande (per guadagnare) e non preavvisano di certo, tanto meno "bonariamente". Molti avvocati, per ordine dei propri clienti e per l'interesse dei loro padroni, mentono, mentono in aula, mentono davanti ai giudici, mentono solo per interesse...non lo sapevate? Svegliaaaaa!
In seconda istanza, un vaffanchiulo anche agli azzeccagarbugli di quell'azienda. Maledetti pezzenti, prepotenti e bugiardi. Facile minacciare dei ragazzini che permettono il libero scambio di informazioni senza commettere nulla di illegale vero?. Facile ubbidire al padrone (solo per soldi) il quale ha interessi commerciali nel mentire ai propri clienti per i propri profitti vero? Facile favorire chi non reinveste nell'attività e mette in cassa integrazione i collaboratori a progetto, che vengono usati come fazzolettini usa e getta vero?
Per ultimo...giova far notare all'azzeccagarbugli di turno che naviga alla ricerca di garbugli da azzeccare, che in questo post non vi sono dati sensibili di nessuno. La riparazione di un telefono che si guasta è consentita e perfettamente lecita. Ogni eventuale utilizzo delle informazioni qui riportate per commettere illeciti, è da attribuire a chi commette l'illecito stesso. E COMUNQUE, VAFFANCHIULO, IL TELEFONO E' MIO E CI FACCIO IL CA**O CHE MI PARE. Andatevene a fanchiulo, bastardi!.

P.S. hack the planet! Ripeto: hack the planet!