Este es un proyecto en ejecución que intenta al (menos) mejorar el firmware actual del cdr1000 de la empresa Coradir S.A, así como también servir como una fuente de documentación de las características del aparato.
Existen varios lugares en la web donde se hicieron algunos avances para acceder al aparato, modificar el software y documentar el hardware, nosotros vamos a ir tomando algunos de esos datos para poder unificarlos. Si hay datos erroneos, quieren colaborar con el proyecto o alguna otra cuestión, no duden en contactarnos por favor.
Objetivos del proyecto:
- Documentar el hardware y sus distintas revisiones.
- Obtener diversos métodos para acceder al filesystem del aparato.
- Realizar ingeniería inversa del software de frontend (csapp.elf) para escribir uno nuevo o adaptar uno existente (¿Zamba?).
- Documentar el firmware actual para conocer la forma de integrar nuevas aplicaciones.
- Crear firmwares customizados con nuevas características.
Características del Hardware
Al parecer no hay un hardware único para este equipo, al menos eso es lo que se intuye porque existen actualizaciones distintas según el nro. de serie. También es conocido que comparte algunas similaridades con el sintonizador de la empresa Newtronic.
- Procesador: Celestial Semiconductor csm1201 - ??? Mhz. (ARM926EJ-Sid rev 5)
- Memoria RAM: 128 MB.
- Memoria Flash: 64 MB.
- Sintonizador: Dibcom DIB8096GP /Toshiba ????/Samsung ?????? (dependiendo del modelo).
- IC HDMI Analogix ANX7150
Sistema operativo
- GNU/Linux basado en ???
- Versión del Kernel: 2.6.12.5
- Web Browser: Links 2.3
- Ginga NCL versión 0.11.1
En la actualización del 10 de octubre de 2010, se deshabilitó el inicio de cualquier script ubicado en /etc/init.d.
Actualizaciones Conocidas:
Cada modelo de cdr1000 tiene actualizaciones diferentes y estas no son intercambiables entre sí. Utilizar una actualización incorrecta puede bloquear el aparato.
- 15 de Mayo 2010
- 10 de Octubre de 2010
Acceso vía Telnet:
Existen varias formas de acceder vía Telnet, en al menos dos versiones del firmware. Esto es posible modificando las configuraciones del navegador web incluido (Links). Para más información, ver la sección "referencias".
Al parecer, a partir de la actualización del 10 de octubre, no es posible escribir en el filesystem utilizando el navegador Links, por lo que no es posible ejecutar el truco de sobreescribir el archivo "links,sh". Todavía queda por confirmar si esta afirmación es cierta.
Acceso vía conexión serial:
Es posible también acceder vía consola a un shell utilizando una conexión serial al puerto JTAG del equipo. Para ello es necesario abrirlo y conectar un cable serial a USB. Para más información, ver la sección "referencias".
Como montar un archivo de actualización en GNU/Linux:
Las actualizaciones constan de dos archivos, denominados "misc.img" y "misc_all.img". Ambos archivos estan encriptados con un método simple, a los cuales se les aplica una clave XOR. Para desencriptarlos, se puede utilizar un programa como Okteta y aplicarle un filtro XOR con la clave 0xe3 (no es un método muy complejo). Una vez hecho esto, guardar los archivos.
Las imagenes están en un formato llamado "jffs2", especialmente diseñado para memorias flash NOR. Hasta ahora solamente pude montar el archivo "misc_all.img", que contiene el filesystem del sintonizador. En un shell ejecutar los siguientes comandos:
modprobe mtdram total_size=100000 erase_size=256
cat /proc/mtd
dd if=misc_all.img of=/dev/mtd0
modprobe mtdblock
mkdir /media/stb
mount -t jffs2 /dev/mtdblock0 /media/stb
El filesystem quedará montado en /media/stb.
Queda como siguiente paso volver a generar un archivo para instalarlo como actualización vía USB.
Arranque de U-Boot
Los archivos de actualización contienen un script de arranque que verifica ciertos requerimientos antes de iniciar la actualización del equipo.
Referencias:
http://cdr1000.blogspot.com.ar/ (información general de como acceder al STB).
http://ret2libc.blogspot.com.ar/2010/08/hacking-coradir-stb-cdr1000d-hdtv.html (acceso vía jtag)
https://lists.ourproject.org/pipermail/ginga-hackers/2010-November/000071.html (acceso vía el web browser).
http://tvd.lifia.info.unlp.edu.ar/ginga.ar/index.php/zamba (Zamba, zapper desarrollado por el LIFIA).
http://lists.kernelnewbies.org/pipermail/kernelnewbies/2012-June/005460.html (discusión sobre stb Chipbox para DVB, al parecer utiliza un chip de csm1203)
http://www.merihvideo.com.tr/chipbox-source.php (kernel 2.6.12.5 para Chipbox)
http://wiki.ginga.org.ar/doku.php?id=receptores:dv-5036 (información general, booteo de kernel vía tftp y flasheo de la nand).
http://www.coradir.com.ar/producto/stb#simple7 (descargas oficiales de actualizaciones del firmware).