Haciendo una copia de seguridad de los datos de un móvil con Android ICS, he visto que existe un directorio llamado cache en el mismo directorio donde se guardan las fotos, /sdcard/DCIM/Camera, que contiene archivos cuya extensión es .tec.

Echando un vistazo al contenido de estos archivos con hexer, parece ser que se trata de un archivo JFIF:

bash 00000000: ff d9 66 b3 00 00 ff d8 ff e0 00 10 4a 46 49 46 ..f.........JFIF 00000010: 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 05 .............C.. 00000020: 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0c 08 ................

Por el nombre del directorio y por el tamaño de las fotos, menos de 100K, parece que deben ser imágenes en miniatura.

Aunque no he encontrado ninguna aplicación que las pueda abrir directamente, he encontrado un vídeo donde se explica cómo abrirlas. La técnica consiste en eliminar los 6 primeros bytes y el último. Podemos confirmar que funciona con GHex, un editor hexadecimal para Gnome. He intentado eliminar los bytes con hexer pero no hay manera, siempre se me pone en "modo infierno" y no termina de salir bien.

Si queremos recuperar todas esas imágenes en miniatura, hacer el cambio archivo a archivo es algo impensable, sobre todo si tenemos un gran número de ellas. Utilizando dd podemos conseguir eliminar los 6 primeros bytes de todas las imágenes:

bash $ for f in *.tec; do dd bs=6 skip=1 if=$f of=$f.jfif done

Aunque en este caso no eliminamos el último byte, los archivos creados se pueden abrir sin problemas.

Como comentario final, si queremos borrar las fotos del móvil, deberíamos borrar también las imágenes en miniatura que están en el directorio /sdcard/DCIM/Camera/cache, o directamente el propio directorio.

Referencias

» Recover deleted photos from an Android device » Best way to remove bytes from the start of a file? » JPEG File Interchange Format (JFIF)


Entradas relacionadas