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:
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:
$ 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)