Mantener fecha original al copiar ficheros/fotos con android

A veces he tenido que hacer copia de seguridad de las fotos que tengo en el móvil (Galaxy Note2) y pasarlas a la tarjeta SD o al ordenador.

Y cada vez que hacía una copia de las fotos, la fecha de la foto cambiaba y se ponía la actual del sistema. Es decir, que si las copiaba hoy, todas las fotos tenían fecha de hoy. Y eso no es muy correcto…

He probado de todo para que las fotos tegan la fecha y hora original. Importando como MTP, desde un backup, haciendo un ZIP, haciendolo por adb push, etc…. todo lo imaginable.

Hasta que un día me dió la ventolera y probé con el ADB PUSH pero en modo Recovery, y voilá… funcionó.

Los pasos serían;

1.- Reiniciar en modo recovery (yo uso TWRP) pero me imagino que con CWM funcionará igual.

2.- Usa adb push para “enviar” las fotos o carpetas que quieras.

3.- Reinicia en modo normal.

Y eso es todo. Ya tendrás las fotos con la fecha intacta.

Imagino que funcionará tanto en Windows como en Linux, pero la prueba la hice con un Windows 7.

Hay que tener en cuenta que todo lo que subas desde adb push, se subirá como usuario ROOT, por lo que cuando arranques no podrás renombrar, ni borrar ni nada. Hay que cambiar los permisos.

Iniciado en Recovery, ejecuta:

adb shell
cd /sdcard/
ls -l
Comprueba el nombre del usuario y el grup de la mayoría de los ficheros.

Y ahora cambia el usuario y el grupo con el comando chown

chown -R user:group ./directorio
e.g.: chown -R media_rw:media_rw ./Pictures/Instagram

EDIT1

He descubierto como modificar las fechas de los archivos directamente desde el dispositivo.

Al entrar con un adb shell tenemos que acceder como root a la carpeta de Camera o DCIM o a la carpeta donde se guarden las fotos que queremos modificar.

Tras acceder a la carpeta, ejecutaremos los siguientes comandos:

ls *.jpg > listado.txt

ls *.jpg | awk ‘{print substr($0,5,8)}’ > fecha.txt

Y por último ejecutaremos el touch para cambiar las fechas a las fotos.

while read -r a && read -r b <&3; do touch -t $a $b; done < fecha.txt 3<listado.txt

En un linux (Debian, por ejemplo) se cambia el parámetro -t por -d

while read -r a && read -r b <&3; do touch -d $a $b; done < fecha.txt 3<listado.txt

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s