[Tutorial] - NandFlasher UP/Dev. (Rev. 0.1)

[Tutorial] - NandFlasher UP/Dev. (Rev. 0.1)
Introducción

Este tutorial ha sido realizado como una traducción directa de las instrucciones de uso escritas por Dark_AleX, junto con algunas consideraciones posteriores mías.

Es realizado para la revisión 0.1 (beta) sacada a día 12/06/07, y será actualizado en cuanto nuevas versiones salgan a la luz.

Si teneis dudas, ya sabeis :)
Precauciones Iniciales

Esta aplicación sirve para consolas CON un modchip UP o Devolution (este segundo con un código no 100% probado) y para consolas SIN un modchip instalado, pero lógicamente con no todas las funciones.

Nuestra PSP con el modchip que sea, al ser conectada por USB al PC, será automáticamente detectada por la aplicación.

En casi todos los casos, os será necesario un DLL de conexiones usb/ftdi, que podeis descargar aquí.

Antes de toquetear nada, es interesante que usarais la opción de hacer un backup de la NAND como explicaremos más adelante.

Modo de Empleo

Antes que nada, tendremos que descargar el propio NANDflasher de aquí.

Una vez que lo tenemos junto con nuestro DLL que comentabamos anteriormente, copiamos ambos archivos (nandflasher.exe y FTD2XX.DLL) en la misma carpeta, por ejemplo en C:/nandflasher/ y, bajo Win32, abrimos un diálogo de MS-DOS (Inicio-Ejecutar-cmd) y, según lo que queramos hacer, habremos de poner una u otra cosa:



Sobre las "Unidades"

A la hora de usar este flasheador por línea de comando como veremos más adelante, tenemos que tener en cuenta que, en total, existen 3 tipos de unidades, dependiendo de nuestro sistema con el que trabajemos.

De esta manera, indistintamente para UP o Devolution (excepto en el primer caso), asociaremos unas letras específicas:

NAND de UP -> u

NAND de PSP -> p

Archivo de NAND -> f


Una vez especificada la unidad, será necesario especificar la ruta para el dump de la NAND (ya creada o por crear); siempre recordando que la NAND de tu PSP no se puede escribir en el UP, ya que aunque lo intente, el proceso final llevará a datos corruptos.




Uso general

De forma general, el acceso por línea de comando para este programa será, una vez dentro de la carpeta,
nandflasher [-opciones] funcion parámetros




Opciones posibles:

-d => Habilita la escritura debug, mostrando en pantalla los mensajes y errores no criticos.

-n => Deshabilita la verificación de la escritura (por defecto es verifica) en caso de que lo prefirais para una mayor velocidad; e incluso en algunas instalaciones de UP no será del todo efectiva, y aún así es necesaria esta opción.



Funciones del NANDflasher.


CopyRaw

[b]nandflasher cr[/b] origen destino <archivo>


Esta función nos permite copiar la NAND del origen que especifiquemos al destino en binario, de manera que si no tiene bloques dañados el origen, la copia será 1:1

Este método, si tiene bloques dañados, es posible que cause un brick, a no ser de que estos bloques dañados ya estuviesen antes del flasheo. De esta manera, es más aconsejable para simplemente dumpear la propia NAND.

Por ejemplo, si quisiéramos dumpear la NAND de la PSP,
nandflasher cr p f "nandimage.flash"

y si quisiéramos por otro lado copiar la NAND de la PSP a la NAND del UP,

nandflasher cr p u



aunque como hemos comentado anteriormente, esto puede no funcionar en todas las instalaciones, con posibilidad de datos corruptos.




CopyRawSkip

Esta función es exactamente igual que la anterior, con la única diferencia de que se salta por defecto los bloques pertenecientes al idstorage en los procesos.

nandflasher [b]crs[/b] origen destino <archivo>




CopyLogical

Esta función nos permite la copia de las secciones lógicas de una o más unidades a la unidad de destino. Esta, es más segura que la raw anterior, ya que maneja los posibles bloques dañados en todas las secciones.

No disponible para UP, ya que borrado/escritura no están disponibles.

[b]nandflasher cl[/b] iplsource idstoragesource lflashsource destino



Donde:

iplsource => Unidad que contiene el IPL a copiar. Si es 0, no será tenido en cuenta.

idstoragesource => Igual que anteriormente, pero para el idstorage.

lflashsource => Igual que anteriormente, pero para el lflash


Por ejemplo, con:

nandflasher -n cl f p f u "nandimage.flash"

escribimos el IPL y el lflash de nandimage.flash al UP, y el idstorage de la NAND de la PSP a la NAND del UP.



Gipl

[b]nandflasher gipl[/b] unidad ipl.bin


Extrae el ipl de una unidad especificada y se pasa al archivo ipl.bin

Incluso, podríamos extraer el IPL del nandimage.flash que habíamos creado anteriormente;

nandflasher gipl f ipl.bin nandimage.flash





Sipl

[b]nandflasher sipl[/b] unidad ipl.bin

Escribe los contenidos del archivo ipl determinado a la unidad que especifiquemos.




Gids

[b]nandflasher gids[/b] unidad <directorio idstorage>


Esta función nos permite dumpear el idstorage de la unidad especificada a un directorio que nombremos (creado o no), y la estructura de este idstorage será basado en un index.bin con el índice de las keys del idstorage y una serie de keyXxXX.bin con las propias keys.

Por ejemplo,

nandflasher gids p mi_idstorage






Sids

[b]nandflasher sids[/b] unidad <directorio idstorage>


Escribe los archivos binarios del idstorage del directorio que especifiquemos en la unidad determinada, con la mísma lógica esctructura que crea el gids.

Por ejemplo,
nandflasher sids u mi_idstorage

escribiéndolo en la NAND del UP.




Glfs

[b]nandflasher glfs[/b] unidad imagenlflash

Dumpea la flash lógica que contiene las particiones de archivo de la unidad especificada a la imagen que determinemos.

Por ejemplo,

nandflasher glfs p flash.ima





Slfs

[b]nandflasher slfs[/b] unidad imagenlflash

Escribe la flash lógica contenida en la imagen que determinemos a la unidad especificada.




Test

[b]nandflasher t[/b] unidad

Testea la unidad especificada para bloques dañados. Este test consiste en que borrará la NAND, escribirá 0 y luego 1's para el testeo, y confirmará los bloques dañados.

Dado que borra la NAND, habrá de ser reprogramada más tarde; y aunque sea lenta y costosa, es muy aconsejable junto al dump de la NAND para poder saber cómo se encuentra nuestro dispositivo.

Estos tests no podrán ser usados para UP's, ya que el proceso de escritura/borrado no funciona.




TestSkip

[b]nandflasher ts[/b] unidad

Esta función hace lo mismo que la anterior, pero saltándose el idstorage.




82

[b]nandflasher 82[/b] unidad

Esta función simplemente parcheará una unidad TA-082 para que pueda usar un firmware que esté basado en el IPL de 1.xx


Últimas Consideraciones

Todos los derechos de este tutorial van para Dark_AleX

--Alek
[tadoramo] [tadoramo] [tadoramo]

Poco más se puede decir XD
gracias,seguro que mucha gente con UP y Devolucion te lo agradecera
Calidad [plas] ya te lo dire por el irc :P
Fantabuloso tio!!!

Weno, yo como soy un manazas me espero a k saken alguna version con GUI xD, pero de toas formas se agradece 1000!!
Sin comentarios ...

Gracias Alek ...
siemplente no hay palabras, enorabuena.
aora yo tengo un pequeña pregunta viendo este flasheador...jeje

y es si teniendo dañada la idstorage de la PSP se puede volver a corregir de alguna forma..

solo queria saber eso,ya que como yo, mucha gente q tiene el chip UP ha cometido el error de renombrar un eboot a nandimage.flash y asi cargandonos la el idstorage de la psp.

bueno pues muchas gracias por todo y espero porfavor q alguien pueda contestarme. GRACIAS!
Yo de verdad no entiendo mucho del IDStorage, aunque me he leido en este foro que lo han explicado con peras y manzanas (eso que la IDStorage es como la huella digital de la psp y la hace unica en el mundo a cada una)..... Gracias a rastaman yo pude revivir una negrita que me jodi con la firmware 1.62 IE-A o B la verdad no me acuerdo, la cosa es que se me brickeo y no aparecio nada mas (se suponia que tenia 2 recovery y no me funciono ni uno XD)

Compre otra psp, la tube un tiempo y como compre el UP a esta psp buena le hice un Dump Como me dijo rastaman, el archivo lo renombre a nandimage.flash, y con el programa del UP hice una copia de la firmware corrupta de mi psp.

Bueno, despues con el recovery del epsilon bios le di restore onboard psp y se me arreglo, aunque digo que ocupe solamente el dump de la otra psp y nada de la firmware de la briquiada e hice todo esto sin preocuparme de la IDStorage que tenia mi psp brick.

Funciona todo ya hora esta con 3.40 OE-A y funca de pelos, pero aun me queda la espinita del IDStorage, ya que quiero encargar el devolution para mi pink y hay que modificar la key 5 y no se como se hace todo ese proceso.


Gracias por todas sus respuestas y por tu tuto alek



salu2;)
Ante todo GRACIAS Alex por todo lo que haces.. eres una pasada [plas]

Mi tema es que no consigo acceder a la nand de la psp con el programa (no lee nada)... Mi placa es una TA082 con el chip Devolution instalado y brickeada al producir un error en la flash0, sin embargo el soft del Devolution la lee perfectamente. ¿porque?

Ya se que es para usuarios avanzados pero no he conseguido hacer nada mas que leer la nand con el soft del devolution y queria probar con este.. ^^

Un saludo y suerte.
alek escribió:En casi todos los casos, os será necesario un DLL de conexiones usb/ftdi, que podeis descargar aquí.


Alguien puede decirme cual es ese archivo?? pulso aquí y no puedo descargar nada, ademas tampoco se el nombre, gracias de antemano un saludo
muchisimas gracias

a este tuto le he dado vida a mi ta-79 desbrikeada que no podia utilizar los umd por estar inutilizado debido al idstorade


repito

Muchisimas gracias

saludos
Alek te daba por desaparecido, después de tanto tiempo.

Lo has explicado bastante bien.
Resucito este hilo porque esta herramienta es justo lo que andaba buscando, puede extraer-injectar el IPL, los keys, y las particiones flash de un dump de la NAND hecho con pandora

Ya estaba todo explicado mas arriba, pero voy a resumir las opciones utiles para manipular archivos:

Extraer
Extraer particiones flash del dump ---> nandflasher glfs f flash.ima nandimage.flash
Extraer idstorage del dump ----------> nandflasher gids f mi_idstorage nandimage.flash
Extraer IPL del dump ----------------> nandflasher gipl f ipl.bin nandimage.flash

Injectar
Injectar particiones flash en el dump ---> nandflasher slfs f flash.ima nandimage.flash
Injectar idstorage en el dump ----------> nandflasher sids f mi_idstorage nandimage.flash
Injectar IPL en el dump ----------------> nandflasher sipl f ipl.bin nandimage.flash

Donde:
nandimage.flash ---> es el dump creado por pandora
flash.ima ----------> es el archivo de las particiones flash que va a ser extraido del dump
mi_idstorage -------> es una carpeta para que el programa meta ahi los keys que van a ser extraidos del dump


Edito para decir que he hecho 2 veces el proceso de extraer todo, volverlo a injectar.... luego he comparado el dump original con el "injectado" y me salen diferencias, asi que lo dejo por hoy.... :(
12 respuestas