RTK Unpacking Tool

D@rkbytes

Moderador general
Aplicación para descomprimir y comprimir firmware de TV con SoC Realtek.

La finalidad es extraer el contenido del firmware para poder editarlo.
Este proyecto está en su fase inicial e iré subiendo actualizaciones para mejorarlo.

Como siempre, espero que sea de utilidad.
Cualquier duda, comentario o sugerencia podrá ser atendida por aquí.

RTKUTV10.png

Actualización v1.1
Se cambia el diseño, se añaden opciones de selección de carpeta de destino y se mejora el programa.

RTKUTV11.jpg
 

Adjuntos

  • RTK_Unpacking_Tool_v1.0.rar
    693.5 KB · Visitas: 223
  • RTK_Unpacking_Tool_v1.1.rar
    752.9 KB · Visitas: 389
Sería bueno uno para unidades de DVDs MTK
Me enfocaría más por desempacar el firmware de televisores, y es cierto qué, tanto teléfonos celulares, como reproductores para DVD y cajas decodificadoras puedan usar un SoC MediaTek, la estructura no es igual, y esto se da por el tipo de equipo al que el firmware será destinado.
Llevo ya un tiempo tratando de encontrar el sistema de archivos con el que algunos firmware MTK vienen actualmente, pero no lo he logrado.
La cabecera del firmware es la siguiente:
Cabecera de firmware MTK encriptado.jpg
Los bytes que seleccioné se repiten en varias partes del archivo, y parece ser que se trata de los 16 bytes "MTK_RESERVED_MAGIC" de cada paquete.
Los primeros 16 bytes suelen ser iguales, y por ahí partí tratando de encontrar algo referente, pero igualmente sin éxito.
Tras probar varios tipos de descompresión y algoritmos, ninguno ha sido capaz de dar resultados o de al menos poder mostrar información.
También he realizado consultas en los grupos de desarrolladores en los que tratamos este tipo de asuntos, pero hasta el momento no se ha podido saber cómo tratar este tipo de archivos encriptados.
Así que, esto de desempaquetar firmware MediaTek encriptado quedará pendiente e inconcluso por el momento.
Si alguien tiene información acerca de este tipo de cabecera, pues será gratamente bienvenida.
 
a-Ese archivo es una actualización o lo levantaste de una memoria?
Ese archivo es el firmware oficial distribuido por MediaTek.
Cuando el archivo se obtiene al leer la eMMC se obtiene un archivo en modo RAW.
Igualmente indescifrable porque ya lo he hecho.
Sin embargo, cuando se extrae de la eMMC se puede volver a grabar a la eMMC de otra tarjeta con problemas de inicio.
Es lo que conocemos como Dump o Volcado de la eMMC.
b-Está verdaderamente encriptado o solo comprimido con algún compresor extraño?
Por ahora lo que he logrado investigar es que, se trata de ambos, un empacado con clave.
Y el problema es que los primeros bytes de la cabecera no corresponden a compresores conocidos.
Esto complica las cosas, ya que hay compresores que pueden omitir identificadores o firmas pero sí admitir claves.
Muchas claves de diferentes marcas se han dado a conocer y hasta liberan el software con fines de evaluación.
Como en el caso de Mstar, pero en el caso de MediaTek aún no he podido encontrar nada referente.
Es por eso que el programa que escribí para obtener el BOOT de firmware MediaTek, solo puede trabajar con archivos RAW.
Y es que ese tipo de firmware aún no era comprimido ni encriptado, pero estamos hablando de sistemas basados en Android 7.XX y anteriores.
Que, aunque ya es obsoleto porque varias aplicaciones no funcionarán, al menos con el BOOT puedes recuperar el TV para poder instalar el firmware y usar el TV en modo normal o con un TV BOX barato y actual para recuperar el SMART.
 
Por ahora lo que he logrado investigar es que, se trata de ambos, un empacado con clave.
Complicado...
Y el problema es que los primeros bytes de la cabecera no corresponden a compresores conocidos.
Será que encriptan el archivo comprimido???
Si se pudiera trazar la ejecución de la rutina de instalación, tal vez se podría rastrear la clave y/o proceso de compresión....pero haría falta un sistema de desarrollo para el SoC MediaTek o alguna forma de ejecutar el proceso de forma controlada.

Lo que me llama la atención es el cifrado de la eMMC por que tiene que desencriptar para ejecutar, pero si es un file system Linux el mecanismo de cifrado debe ser alguno conocido...
 
Será que encriptan el archivo comprimido???
No lo creo, ya que cambiaría la cabecera.
De hecho, todo el contenido del archivo.
Si se pudiera trazar la ejecución de la rutina de instalación, tal vez se podría rastrear la clave y/o proceso de compresión.
Me acabas de dar una idea que tal vez pueda funcionar, y eso sería usando el MTK Flash Tool y realizar un rastreo con un sniffer RS-232.
Eso lo hacía hace ya tiempo en la época del WXP con el programa PortMon, pero ahora en W10 y W11 ya no funciona.
Creo recordar que hasta existe un tema sobre eso aquí en el Foro pero hasta donde yo sepa, no encontré algo que pueda monitorear un puerto abierto sin que en los SO actuales produzca un error por puerto abierto.
Tal vez exista, pero no sé cuál pueda hacerlo.
El asunto es que puedo usar una máquina virtual con WXP o con W7 x86 que pueden soportar .VXD y .SYS para ver si logro ver algo.
Lo que me llama la atención es el cifrado de la eMMC por que tiene que desencriptar para ejecutar, pero si es un file system Linux el mecanismo de cifrado debe ser alguno conocido.
No es tanto de sorprenderse que si el mismo firmware está encriptado, el sistema de archivos también debe haber cambiado.
Y por eso es que tampoco he podido encontrar referencias válidas para reconstruir el sistema y extraer sus particiones.

Edito y corrijo:
Creo que me quedé pensando en los intentos que realicé con desempacados infructuosos, pero es bien cierto que una imagen extraída en modo RAW contiene todo el sistema de archivos sin encriptar.
Y es por eso que escribí el programa RT809H Dump Extractor.
Pero, el tema que importa no es ese, ya que no todos pueden disponer de programadores costosos que pueden realizar esta tarea.
Sino realizar este proceso desde el mismo firmware, ya que una vez obtenido el sistema de empacado, se podrá volver a empacar.
Caso que por motivos de tiempo no he podido concluir en esa aplicación, aunque ya tengo el Skeleton del programa y cierta parte programada. :)
 
na salvación de Argelia para ti y para todos nuestros amigos mexicanos
Gracias por todos los excelentes temas que presentas gentilmente a todos.
Descargué las 2 versiones de este importante programa (RTK Unpacking Tool) pero no se abre: "unexpected error".
yac.jpg

Uso Windows 7 y Mozilla & Chrome.
¿Me pueden ayudar?
Mis saludos fraternos.
 
Windows 7 es un sistema operativo obsoleto que ya no cuenta con soporte.
El problema puede radicar en que las API que usa el programa no sean compatibles.
He estado ocupado con unos programas pendientes, pero espero muy pronto poder migrar este programa a C# .Net.
De esa forma se resolverán los problemas de incompatibilidad.
 
Buenas tardes, estimado. ¿Cómo empaqueto nuevamente?
D
isculpe si está en otro post, estoy utilizando esta herramienta.
Y
a desempaquetó, ya modifiqué pero, ¿cómo empaqueto?
 
Última edición por un moderador:
Atrás
Arriba