# Discos multimedia basados en Wyplayer/Texto completo

* Si imprimes esta página, o eliges la opción de Vista preliminar de impresión de tu navegador, verás que desaparecen este cuadro y los elementos de navegación de arriba y de la izquierda, pues no son útiles en una versión impresa.
* Pulsando antes en Refrescar esta página te asegurarás de obtener los últimos cambios del libro antes de imprimirlo.
* Para más información, puedes ver Wikilibros:Versión para imprimir.
Libro traducido a varios idiomas :
| Español | English | Français | Italiano |
| Información general Hardware Firmware Enlaces de interés Texto completo | General information Hardware Firmware Interesting links | Informations générales Hardware Firmware Liens d'intérêt | Informazioni generali Hardware Firmware Link interessanti |

# Información general

Wyplayer es un dispositivo de origen francés...

# Modelos conocidos

* Wyplayer (Frances)
* MediaTitan
* ZoltarTV
* Mediatec

# Comercialización

Se comenzó a comercializar en ¿Noviembre de 2008?

# Características de los dispositivos

* Chipset: ST Micro 7109
* RAM: 256 Mb
* Ethernet 10 / 100 Mbit/s
* Wireless (sólo en algunos modelos) 802.11b/g/n (soporte WEP, WPA y WPA2)
* Sintonizador: Doble sintonizador DVB-T
** Modos de modulación DVB-T: QPSK/QAM 16/64
** Selección automática de FEC
** Soporte UHF/VHF (47 … 862 MHz)
** Ancho de banda de los canales 7, 6 or 8 MHz
** All guard Interval modes: 1/31, 1/16, 1/8, 1/4 active symbol [por traducir]
** All code rates [por traducir]
** Red SFN o MFN
* Dispositivo USB
** USB 2.0 de alta velocidad, Tipo B
** Dispositivo MTP
** USB host
** USB 2.0 de alta velocidad, Tipo A (1x frontal, 2 posteriores)
* Salidas de Video
** Video Compuesto(CVBS)
** HDMI (versión 1.2)
* Salidas de Audio
** Stereo (CVBS)
** S/PDIF (Optica)
** HDMI (versión 1.2)
* Disco Duro: 3.5” Serial-ATA 1.5 Gbit/s
* Ventilador: Sensor interno de temperatura y controlador PID
* Mando a distancia: Infrarojos, 2 pilas AAA
* Fuente de Alimentación
** Entrada: 100-240V 50/60Hz 1.2A
** Salida: DC 12V 4.0A

# Código fuente

Inicialmente se publicitó que el firmware de estos dispositivos se obtenía a partir de codigo fuente abierto. Hasta la fecha han visto la luz X versiones del código: <enlace>

# Hardware

Estos discos multimedia llevan un hardware muy parecido al de cualquier computadora, pero con un rendimiento y un tamaño menor. Aunque la especificación concreta de los componentes no es pública, algunos usuarios han ido averiguando cosas e ilustrando los distintos componentes.

## Chipset

Parece ser que el chipset del los dispositivos en un ST Micro 7109. Este chipset ofrece interfaz JTAG/TAP.
Se puede encontrar la especificación de este chip en la siguiente dirección:
* http://www.st.com/stonline/products/literature/bd/11660/sti7109.pdf

## Imágenes del Hardware del dispositivo CMT2D(sin wifi)

Al abrir estos discos multimedia se puede ver el siguiente hardware:
* https://archive.is/20130114053437/img269.imageshack.us/img269/258/mediatitan1.jpg
* https://archive.is/20130114051923/img269.imageshack.us/img269/538/mediatitan2.jpg
* https://archive.is/20130114050039/img269.imageshack.us/img269/3254/mediatitan3.jpg
* https://archive.is/20130114044437/img269.imageshack.us/img269/9430/mediatitan4.jpg

## Componentes de la placa del dispositivo CMT2D(sin wifi)

Como se puede comprobar en la siguiente imagen, los compenentes identificados hasta el momento en un dispositivo CMT2D son los siguientes:
* http://img40.imageshack.us/img40/4601/mediatitan4ident.jpg (componentes de la placa de un Media Titan CMT2D)
| Componente | Descripción | Enlace |
| FLASH MEMORY | Samsung Semiconductor - K9F2G08U0A-PCBOO - NAND Flash | http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=159&partnum=K9F2G08U0A |
| Other FLASH MEMORY (simbolo en la imagen------> ?) | Spansion - S29GL064N - NAND Flash | http://www.spansion.com/products/S29GL064N.html |
| HD INTERFACE | SST - SST55VD020 - ATA Flash Disk Controller | http://www.sst.com/products.xhtml/embedded_controllers/55/SST55VD020 |

# Firmware

Los ficheros de firmware son los que permiten al usuario actualizar éstos discos multimedia. Los suministran las casa que que venden cada dispositivo y parece que no son compatibles los de un dispositivo con los de otro.

# Hitos en la ingeniería inversa de los ficheros de firmware

* Conocer la estructura de los fichero .wup (Hecho)
* Conocer el formato de las partes del fichero .wup (XML y Kernel, queda el software)
* Conocer la funcionalidad de cada parte del fichero .wup (Pendiente)
* Actualizar los dispositivos con el firmware de otro dispositivo. (Pendiente)
* Generar "kernel" propio e instalarlo en los dispositivos. (Pendiente)
* Generar "software" propio e instalarlo en los dispositivos. (Pendiente)
* Intentar obtener las clave que encripta la parte del software de los update.wup para cada dispositivo. (Pendiente)
* Acceder al dispositivo para obtener más información durante su funcionamiento. (Pendiente)

## Estructura interna de los ficheros wup
### Código XML

Ejemplo:

### Fichero de kernel

Según la salida del comando file (existente en sistemas basados en *nix) el fichero de kernel es de tipo:

#### Investigando el código

En el código fuente suministrado por wyplay existe el directorio uboot-<version> Investigando un poco como se complila, en uboot se ha encontrado que en el directorio board hay un sub-directorio llamado wyplay, que parecen ser las especificaciones necesarias para compilar el u-boot para las distintas placas bases de wyplay.
* Al revisar el Makefile que se encuetra en el directorio princial uboot-<version> se puede encontrar una entrada para diferentes "boards" de wyplay.
Se está intentando configurar y compilar para wymdbox_config (wyplayer multimedia box) que se entiende que es la que corresponde con los estos discos.
* El make falla porque falta el compilador para SH4 (¿?). Este aarece que puede ser el tipo de arquitectura del procesador que llevan los discos multimedia (Especificación: http://lars.nocrew.org/computers/processors/SuperH/sh4cpu_sh1.pdf).
* Se ha compilado un toolchain para la compilación cruzada para esta arquitectura: http://wiki.debian.org/SH4/CrossToolchain
* Se ha compilado el u-boot para la wymdbox.
* Parece ser que el fichero kernel de los firmwares está compuesto por el u-boot y el propio kernel.

#### Analizando el fichero kernel

El magic number en la cabecera (0x270519) de este fichero indica que es del tipo u-boot. Si se analiza el resto del fichero se encuentra en el offset 352 (al menos de los analizados hasta ahora un fichero gzip, que se puede extraer con el comando:
Si se analiza este fichero que se ha descomprimido, se encuentra que dentro del mismo hay (al menos en la mayoría de los firmwares) otros dos ficheros comprimidos. Uno parece ser el fichero de configuración del kernel y el otro el initramfs.cpio también requerido durante la compilación (si se establece el parámetro correspondiente).
Se ha creado un nuevo script para buscar y descomprimir ficheros gzip dentro de otros ficheros. Como entrada necesita el o los ficheros (puede utilizarse algo como kernel1.2* como entrada) en los que se desean buscar fichero gzip.
En éste caso concreto. Se puede utilizar tanto para obtener el gzip de los ficheros de kernel, como para los ficheros gzip que están en los ficheros descomprimidos obtenidos del kernel. Para clarificar todo esto se expone a continuación la jerarquía de ficheros que se tiene ahora mismo:
update.wup (aplicar el script de extracción)
    header (contiene el tamaño del fichero de kernel en sus últimos 4 bytes)
    kernel (aplicar script de extracción de gzip)
       kernel.uncomp (aplicar script de extracción de gzip)
          config (fichero de configuración para la compilación del kernel)
          initramfs.cpio (fichero necesario también en la compilación)
    middle (contiene el tamaño del fichero de software en sus últimos 4 bytes)
    software
    footer
    infoxml (información xml sobre el fichero update.wup y su dispositivo)
Notas: Hay un proyecto llamado tribbox de un media center con características similares a los nuestros (al menos el procesador) y con información de como montar el sistema operativo/etc. Puede ser util: http://www.tribbox.com/

### Fichero de software

Hasta el momento no se sabe exactamente cual es el formato del sistema de software, ya que el comando file da como salida para dicho fichero "data". Se conjetura que es un sistema de ficheros squashfs y que además está encriptado con un cifrado aes-cbc-plain usando una clave de 128 bits. Probablemente, la imagen es desencriptada por la interfaz dm-crypt del kernel Linux.
A partir de todas las conjeturas que se han ido haciendo, se ha creado un script que dado un fichero de software obtenido de un fichero de firmware (script de extracción) (wup) y otro fichero con una lista de contraseñas, intenta desencriptar y determinar el sistema de ficheros que hay subyacente. Hay varios problemas:
* No se está completamente seguro del sistema que se está utilizando para encriptar, por lo que se están dando palos de ciego.
* El script da muchos falsos positivos, ya que siempre se desencripta el sistema. Lo único que determina si ha sido correcto o no es la salida de file, de la que cabría esperar que fuera algo como squashfs filesystem o similar.
Este es solo un código didáctico y a modo de ejemplo de desencriptación en sistemas Linux de ficheros y particiones completas. Cada cual es responsable del uso que hace de él. Se recomienda revisarlo antes de hacerlo funcionar.

### Script de extracción

Este script en bash/shell script permite obtener de un fichero de actualización de firmware (.wup) los ficheros correspondientes al kernel, el software y la información XML. Es completamente GPL y no hay responsabilidad ninguna sobre su uso. Quien tenga dudas sobre su funcionamiento o sus acciones que lo analice. Por supuesto, cualquier mejora, sugerencia o aportación será bienvenida.
Actualmente obtiene 6 ficheros a partir del fichero de actualización wup. Los principales son los de kernel y software, de cierto interés el infoxml y el resto (header_bytes, middle_bytes y footer_bytes) son los bytes que quedan sin identificar en distintas partes del fichero. Se ha hecho así para que uniendo todos los ficheros se obtega de nuevo el fichero original sin perder información.
El script se ha probado con éxito en los últimos ficheros de actualización de MediaTitan, ZoltarTv y Wyplayer.

## Actualizar un dispositivo con el firmware de otro

Uno de los problemas que se están encontrando es que no se puede utilizar un firmware de uno de los dispositivos en otro dispositivo distinto. Parece ser que el motivo es que cada dispositivo tiene un identificador y además que la parte de "software" del fichero firmware está encriptada de forma distinta para cada dispositivo.
Si esto fuera simplemente así, sería teóricamente posible crear un firmware para un dispositivo al que se le cambiara la parte de kernel y aún así permitiría la actualización. Teniendo cada uno de los 6 trozos de un fichero de actualización podría construirse uno como la mezcla de varios ficheros firmware distintos.
Nota: esto no parece posible. Se ha probado un kernel de Wyplayer en un CMT2DW, escribiéndolo directamente con un comando dd, y el dispositivo no arranca. (minukab. 9-3-2010)

### Script para mezclar ficheros de firmware

Para probar este concepto de mezclar el contenido de dos ficheros de firmware se ha creado un script capaz de generar un nuevo fichero .wup a partir de otros dos distintos. Para ello, descompone cada uno de los dos originales (si todavía no se encuentran descompuestos en el directorio) y ofrece una serie de posibles combinaciones. Esto puede ser interesante para comprobar si alguna de ellas nos permite actualizar nuestro dispositivo. Por regla general, de todas las opciones que ofrece el script, pueden interesar aquellas que mezclan una parte de un dispositivo ajeno y el resto lo toman del propio. Y más concretamente la que toma el kernel de otro y el resto del propio. Todavía no se han puesto a pruebas los ficheros generados por este script, por lo que se recomienda cautela a la hora de utilizarlos.
IMPORTANTE: Para que el script funcione hay que cambiar el valor de la variable EXTRACT_PROGRAM y establecer la ruta completa al script de extracción.
El funcionamiento es sencillo:

## Generar "kernel" propio e instalarlo en los dispositivos

SH4 toolchain para compilación cruzada desde 386 de 32 bits. Descargar y descomprimir en opt: http://www.megaupload.com/?d=HSV19P40

## Generar "software" propio e instalarlo en los dispositivos

SH4 toolchain para compilación cruzada desde 386 de 32 bits. Descargar y descomprimir en opt: http://www.megaupload.com/?d=HSV19P40

# Acceso Telnet al dispositivo

Para tener acceso telnet al dispositivo es necesario modificar un fichero del disco duro. Para ello será necesario sacar el disco duro y conectarlo a un PC para poder acceder a él. Para acceder al disco y poder modificar el archivo necesitamos una distro linux cualquiera. Si no se dispone de ella se puede usar un live cd de Ubuntu o cualquier otra distribución.
El archivo a modificar se encuentra en la partición 1 que es JFS. Para montarla se deben ejecutar esto comandos:
(nota: sda se debe sustituir por lo que corresponda)
Una vez la tenemos montada debemos modificar el archivo "local_conf.py". Abrimos el fichero con gedit (o kedit desde kde):
y añadimos las siguientes líneas al final (ojo con el "-l", es una L y no un Uno):
Una vez hecho esto desmontamos la partición ( umount /mnt/sda1 ) y ya podemos volver a montar el disco duro en el reproductor.
A partir de este momento ya deberiamos tener acceso telnet al dispositivo: (si está conectado a la red, obviamente)
De momento, se ha comprobado que este procedimiento es valido para las siguientes versiones:

# Enlaces a ficheros de firmware
## O2Media ZoltarTV

* Septiembre 2009 (1.3.17.7947 - 17 Septiembre 2009): http://www.zoltartv.com/firmware/Sep-17-2009/update.zip
* Junio 2009: http://www.zoltartv.com/firmware/Junio-16-2009/update.zip
* Mayo 2009 (1.3.15.7891 - 27 Mayo 2009): http://www.zoltartv.com/firmware/Mayo-27-2009/update.zip
* Febrero 2009 (1.2.14.7866 - 02 de Febrero 2009): http://www.zoltartv.com/firmware/Febrero-02-2009/update.zip

## Wyplayer

* Septiembre 09: http://www.wyplayer.com/downloads/Wyplayer/wup/1.3.17.8530.zip
* Agosto 09: http://www.wyplayer.com/downloads/Wyplayer/wup/1.3.16.8498.zip
--- ya no aparecen en la web oficial aunque siguen funcionando:
* Junio 09: http://www.wyplayer.com/downloads/Wyplayer/1.3.15.8418_11.06.09/version-1.3.15.8418_1.3.15.8418_110609.zip
* Mayo 09: http://www.wyplayer.com/downloads/Wyplayer/1.3.15.8399_13.05.09/version-1.3.15.8399_1.3.15.8399_130509.zip
* Abril . 09: http://www.wyplayer.com/downloads/Wyplayer/1.3.15.8379_20.04.09/version-1.3.15.8379_1.3.15.8379_200409.wup

# Enlaces de interés

A continuación se enlazan algunas páginas de interés donde suele haber movimiento e información de estos discos multimedia

# Foros en Español

* http://code.google.com/p/wydev​ices/ -desaparecido-
* http://www.mediaplayertitan.info -Desaparecido- (Foro dedicado al dispositivo MediaTitan de Conceptronic)
* http://zoltartv.host56.com -Cerrado- (Foro dedicado al dispositivo ZoltarTV de O2Media)
* http://zoltartv.wydev.es -Desaparecido- (Foro dedicado al dispositivo ZoltarTv de O2Media)
* http://foro.wydev.es -Desaparecido- (Foro dedicado a los wydevices (clones de Wyplayer))
Lo que queda:
* http://es-es.facebook.com/pages/ZoltarTV/121846080453
* http://wydev.orgfree.com/foro (Foro que sustituye a http://foro.wydev.es)

# Foros en Francés

* http://hdplayers.fr
* Hilo Mediatc: http://www.homecinema-fr.com/forum/viewtopic.php?f=1089&t=29892734
* Hilo Wyplayer: http://www.homecinema-fr.com/forum/viewtopic.php?f=1089&t=29911072&start=0

# Foros en Italiano

* http://www.1e2.it/forum/viewforum.php?f=8 (ZoltarTV)
* http://www.1e2.it/forum/viewforum.php?f=25 (Wyplayer)
* http://www.1e2.it/forum/viewforum.php?f=27 (Media Titan)

# Páginas oficiales de los dispositivos

* http://www.zoltartv.com/en/ (Página oficial del dispositivo ZoltarTv de O2Media)
* http://www.wyplayer.com/ (Página oficial del dispositivo Wyplayer)
* http://www.conceptronic.net/mediatitan/ (Página oficial del dispositivo Mediatitan de Conceptronic)

# Páginas Sobre los dispositivos

* Noticias y novedades: http://www.wydev.es
* Comunidad sobre el desarrollo de firmware's alternativos: http://www.wydevelopment.eu