lunes, 19 de julio de 2010

Como activar el PVR !!

El binario

La aplicacion viene con un PVR/DVR incorporado, pero al parecer esta deshabilitado.
Como todavia no han liberado el codigo fuente de la aplicacion y no creo que alguna vez lo hagan
para activar el PVR fue necesario patchear el binario.

En /root/bin/csapp.elf esta el binario que hace todo. Basicamente muestra los menus, sintoniza, instala etc.

Para activar el PVR van a necesitar un editor hexadecimal.
Bajen el binario a su maquina y vayan al offset 0x2A3C reemplazen el D0 por 6C y graben con otro nombre.
Ya esta, subanlo a la caja, ejecuten.

Lo que hicimos fue reemplazar el menu de configuracion la funcionalidad de PIN por el menu de PVR (quien necesita configurar el PIN?).

Vayan al menu principal "System Settings" >> "PIN Setting" . Les va a pedir el pin, ponen 0000 y disfruten del PVR.

Para explicar la magia, despues de algunos minutos de debug llegue aca, esto es el main switch de los menus:
En a9d4 esta la jumptable con todas las opcines (los cases del switch). Si tocamos esa tabla hacemos que salte a donde queremos


0000A9CC loc_A9CC                                ; CODE XREF: MiniGUIMain+DC j
.text:0000A9CC                 SUB     R3, R0, #2
.text:0000A9D0                 CMP     R3, #0x23       ; switch 36 cases
.text:0000A9D4                 LDRLS   PC, [PC,R3,LSL#2] ; switch jump
.text:0000A9D8                 B       loc_AA94        ; default
.text:0000A9D8                                         ; jumptable 0000A9D4 cases 9,10,30-32



Aca va la tabla de jumps del switch por si quieren probar otras cosas :

.text:0000A9DC                 DCD loc_AB54            ; jump table for switch statement
.text:0000A9DC                 DCD loc_AB48
.text:0000A9DC                 DCD loc_AB48
.text:0000A9DC                 DCD loc_AB48
.text:0000A9DC                 DCD loc_AB48
.text:0000A9DC                 DCD loc_AB40
.text:0000A9DC                 DCD loc_AB34
.text:0000A9DC                 DCD loc_AB2C
.text:0000A9DC                 DCD loc_AB24
.text:0000A9DC                 DCD loc_AA94
.text:0000A9DC                 DCD loc_AA94
.text:0000A9DC                 DCD loc_AB1C
.text:0000A9DC                 DCD loc_AB10
.text:0000A9DC                 DCD loc_AB10
.text:0000A9DC                 DCD loc_AB10
.text:0000A9DC                 DCD loc_AB08
.text:0000A9DC                 DCD loc_AB08
.text:0000A9DC                 DCD loc_AB08
.text:0000A9DC                 DCD loc_AB00
.text:0000A9DC                 DCD loc_AAF8
.text:0000A9DC                 DCD loc_AAF0
.text:0000A9DC                 DCD loc_AAE8
.text:0000A9DC                 DCD loc_AAE0
.text:0000A9DC                 DCD loc_AAD8
.text:0000A9DC                 DCD PIN_MENU_AAD0
.text:0000A9DC                 DCD loc_AAC8
.text:0000A9DC                 DCD loc_AAC0
.text:0000A9DC                 DCD loc_AAB8
.text:0000A9DC                 DCD loc_AAB0
.text:0000A9DC                 DCD loc_AAA8
.text:0000A9DC                 DCD loc_AA94
.text:0000A9DC                 DCD loc_AA94
.text:0000A9DC                 DCD loc_AA94
.text:0000A9DC                 DCD PVR_PLAY_MENU_AA8C
.text:0000A9DC                 DCD PVR_MENU_AA84
.text:0000A9DC                 DCD DVR_MENU_AA6C
Hay un tema para grabar. Uno de los menues graba y el otro reproduce las grabaciones.
Habria que mapearlo a un boton para que sea mas comodo.
La opcion dos es elegir alguna otra funcion del menu inservible y ponerle a una el grabador y a otra el player.
Es complicado y ojala se dignen a releasear el firmware con todo asi no tenemos que estar haciendo estas cosas :).


Dejo unas fotos de los menues.









Gracias IDA.

31 comentarios:

  1. Dos preguntas,
    Tenes hecho el upgrade de coradir?
    Es caja del gobierno o la que se compra?
    Porque en ese offset no tengo un D0

    Gracias!! :)

    ResponderEliminar
  2. 0000a988 :
    .
    .
    .
    a9b4: e2403002 sub r3, r0, #2 ; 0x2
    a9b8: e3530023 cmp r3, #35 ; 0x23
    a9bc: 979ff103 ldrls pc, [pc, r3, lsl #2]
    a9c0: ea00002d b aa7c <.text+0x8b0>

    ResponderEliminar
  3. mmm. vos tenes la tabla en AA7C.
    Seguro tenes otra version de fw.
    Fijate que igual los nombres de las funciones te dicen todo.
    Vas a encontrar facil donde modificar.

    Quizas pronto suba un binario patcheado asi se hace mas facil.

    ResponderEliminar
  4. Despues de calcular un rato deje en el menu de Media/MP3 el CSAPP_PVR_menu y en elk Media/Jpeg deje CSAPP_PVRplay.
    No crashea y muestra los menues correspondientes, pero de grabar algo ni hablar... :(

    A que rutinas estas llamando para iniciar la grabacion?

    ResponderEliminar
  5. alguno de los dos me podria hacer el favor de subir el csapp.elf para ver si estoy en condiciones de modificarlo, desde ya muchas gracias.

    ResponderEliminar
  6. Hola, este hack para activar el CDR, ¿también serviría para el deco Newtronic que da el gobierno? tengo entendido que es el mismo firmware, pero no tiene habilitado el browser ni el PVR. Saludos.

    ResponderEliminar
  7. baja de aca csapp.elf
    http://www.megaupload.com/?d=4W5STYCT

    ResponderEliminar
  8. Para cual version de STB es ese archivo .elf? version comercial ó version que entrega el gobierno? y lo mas importante, como podemos hacer la gente comun que desconoce del tema para subirla a la caja? gracias!

    ResponderEliminar
  9. Creo que la forma mas facil de subir el binario para la gente comun es con un upgrade de firmware.
    Ya tengo un .exe para "desencriptar/encriptar" (es solo un scramble XOR) el update que posteo coradir. Solo quedaria saber donde patchear y listo.

    ResponderEliminar
  10. alberto poder pasar el exe o explicar como esta xoreado?

    ResponderEliminar
  11. Te paso el fuente directamente. Yo lo compile con el Visual Studio Express 2008.
    Una vez compilado, te sirve para scramblear/desescramblear depende el estado del archivo original, asi es como funciona el XOR.

    ----------------------8<------------------
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    byte ckey = 0xe3;
    byte ob;
    Byte[] b= new byte[1];
    String in_name = args[0];
    String out_name = args[1];
    System.Console.WriteLine("Input File: " + args[0] );
    System.Console.WriteLine("Output File: " + args[1]);
    FileStream infile = new FileStream(in_name, FileMode.Open, FileAccess.Read);
    FileStream outfile = new FileStream(out_name, FileMode.CreateNew, FileAccess.Write);
    while (infile.Read(b, 0, 1) > 0)
    {
    ob = (byte)(b[0] ^ ckey);
    outfile.WriteByte(ob);
    }

    }
    }
    }

    ----------------------8<------------------

    ResponderEliminar
  12. Si te interesa tambien arme un ambiente para cross-compile (compilar codigo para ARM en un i386 para luego ejecutarlo en el STB).
    Ya estoy corriendo algunos programitas mios en el STB.
    Creo que seria bueno reemplazar por completo el csapp con algun port de tipo mythTV o parecido.
    No estoy seguro que sea posible, pero estaria muy muy bueno.

    ResponderEliminar
  13. No creo que se pueda reemplazar el csapp tan facil.
    Esta compilado con el SDK de celestial semiconductor y necesitarias el sdk para compilar algo tuyo que funcione.

    ResponderEliminar
  14. Si, no es nada facil, pero ya compile un programa para detectar los codigos de las teclas del control remoto y funciona en la caja.
    El SDK esta basado en su mayor parte en projectos open source. Ej: DirectFB, MiniGUI, etc, etc
    te puedo pasar si queres el fuente y el compilado para que lo pruebes en tu caja, porque solo lo pude probar en la mia hasta ahora.

    ResponderEliminar
  15. el problema es la parte del sintonizador, el decoding, reproduccion, etc que se hace en el micro. para eso necesitas el sdk.

    ResponderEliminar
  16. fijate el DFBSee de esta pagina https://sourceforge.net/userapps/mediawiki/alticosa/index.php?title=Main_Page
    Podes reproducir fotos y videos. Lo manejas desde el control remoto. falta el sinto ;-)

    ResponderEliminar
  17. Hola. Antes que nada los felicito. En lo personal me gustaria poder stremearle video a la cajita desde mi pc. Por los comentarios de Alberto diria que esta muy cerca de lograr eso.
    Alberto: me podras decir como armar o pasarme el ambiente para cross compilar desde i386 ?

    ResponderEliminar
  18. hola y no podes hacer directamente el firmware??

    ResponderEliminar
  19. no entiendo nada lo que haces no explicas paso x paso... y no seria mas sencillos si podes hacer el firmware... ah y otra cosa... lo que grabas donde se almacena???

    ResponderEliminar
  20. Hubo algun avance en estos meses con el proyecto OpenConDoR? Me gustaría integrar alguna aplicación para ver películas pero no sé como podría lanzarla.
    Será posible integrar morphine.tv en el STB?

    ResponderEliminar
  21. Preguntonta: en qué disco rígido se supone que graba?

    ResponderEliminar
  22. No entiendo nada, si alguien logro activar el PVR me dice como hacerlo?
    Muchas gracias!

    ResponderEliminar
  23. Hola, logré extraer el nuevo .elf pero no encuentro dónde modificarlo, seguramente cambió de lugar. Te lo puedo pasar y lo ves?

    ResponderEliminar
  24. hola alguien sabe como puedo sacar el PIN? no funcio el que viene en el manual "0000"
    Saludos.

    ResponderEliminar
  25. soy un nabo quise actualizar mi cdr y ya no funciona mas queda en boot, alguien me puede ayudar veo en esta pagina q todos saben mucho, pero yo entiendo poco.

    ResponderEliminar
  26. http://descargas.coradir.com.ar/stb/
    de esa pagina baje las actualizaciones pero ya no reconoce ninguna solo queda en read

    ResponderEliminar
  27. hola, alguien sabe como resetear el pin? no me toma el 0000....y no creo haberlo cambiado nunca,,,, tampoco actualize nunca nada porque de estas cosas no entiendo nada....agradeceria cualquier ayuda..les dejo mi correo ... cachorroscachos@hotmail.com gracias!!!!

    ResponderEliminar
  28. hola, alguien sabe como resetear el pin? no me toma el 0000....y no creo haberlo cambiado nunca,,,, tampoco actualize nunca nada porque de estas cosas no entiendo nada....agradeceria cualquier ayuda..les dejo mi correo ... cachorroscachos@hotmail.com gracias!!!!

    ResponderEliminar
  29. Abandonaron el proyecto o estan en otro blog, web o foro? estoy muy interesado en el tema

    ResponderEliminar
  30. Hola...quisiera saber como resetear el pin....tengo dos decos en la misma situacion...si se puede..gracias..

    ResponderEliminar