Correggere la data dei file delle foto su Android con adb
Come impostare la data dei file delle foto su un telefono Android dal computer con adb e touch, così la galleria rimette screenshot, immagini delle chat e foto copiate nel giorno giusto.
Per correggere la data del file di una foto su Android, collega il telefono con il debug USB attivo ed esegui adb shell touch -m -d "2019-07-14 11:05:00" "/sdcard/DCIM/Camera/photo.jpg". Poi chiedi alla galleria di guardare di nuovo con adb shell content call --uri content://media/ --method scan_volume --arg external_primary. La galleria usa la data del file per ogni foto che non ha una data di scatto dentro, quindi così quelle foto tornano nel loro giorno reale.
Quando è la correzione giusta
La galleria ordina per la data di scatto dentro la foto. Solo quando manca usa la data del file. Quindi questo conta per:
- screenshot e registrazioni dello schermo
- immagini di WhatsApp, Telegram e altre chat
- foto copiate sul telefono con "Trasferimento file", che hanno preso oggi come data del file
- foto ripristinate da un'app di backup che non ha mantenuto le date
Se una foto ha una data di scatto sbagliata dentro, cambiare la data del file non serve. Cambia invece la data di scatto: come cambiare la data di una foto su Android.
Cosa ti serve
- il debug USB attivo: come attivare il debug USB
- adb di Google sul computer, da "SDK Platform-Tools"
- il telefono collegato e autorizzato;
adb deviceslo mostra comedevice
Prima guarda le date
adb shell stat -c '%y %n' "/sdcard/DCIM/Screenshots/*"
Ogni riga mostra la data del file e il nome. Una cartella in cui ogni file ha lo stesso giorno, quello in cui l'hai copiata, è quella da correggere.
Impostare la data di un file
adb shell touch -c -m -d "2019-07-14 11:05:00" "/sdcard/DCIM/Screenshots/Screenshot_20190714-110500.png"
-m imposta la data di modifica, che è quella che legge la galleria. -c fa sì che touch non crei mai un file vuoto se sbagli a scrivere il nome. Senza -c, un errore di battitura lascia un file da zero byte.
L'ora viene letta nel fuso orario del telefono. Se vuoi essere preciso, usa invece i secondi dal 1970: -d @1563095100.
Tanti file: prendi la data dal nome
La maggior parte dei telefoni e delle app di chat mette la data nel nome del file: Screenshot_20190714-110500.png, IMG-20220925-WA0018.jpg, IMG_20220104_184121.jpg. Un breve script sul computer può trasformare quei nomi in date e scrivere una riga touch per file in uno script, che il telefono poi esegue in una volta sola:
adb push dates.sh /data/local/tmp/
adb shell sh /data/local/tmp/dates.sh
adb shell rm /data/local/tmp/dates.sh
Uno script con migliaia di righe gira in pochi secondi. Migliaia di comandi adb separati richiedono minuti.
Avvisa la galleria
adb shell content call --uri content://media/ --method scan_volume --arg external_primary
Questo chiede allo scanner multimediale di Android di rileggere ogni file, e su un telefono pieno ci vogliono un paio di minuti. Su Android 9 e precedenti, usa invece questo per ogni file:
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d "file:///sdcard/DCIM/Screenshots/photo.png"
Controlla
Esegui di nuovo il comando stat, poi apri la galleria. Ora le foto devono stare nei loro giorni reali.
Lo stesso senza riga di comando
La scheda Telefono Android di Photo Date & Metadata Fixer, disponibile solo su Windows, lo fa per cartelle intere. Scegli una cartella sul telefono, e l'app legge la data di scatto di ogni foto dalla foto stessa, poi dal nome, poi dalla data del file, ti mostra cosa cambierebbe, e imposta le date in un solo passaggio. Ogni modifica si può annullare.
Domande frequenti
touch cambia la foto?
No. Cambia la data che la memoria tiene per il file. L'immagine e il suo EXIF restano come sono.
Funziona con le foto nel cloud di Google Foto?
No. Funziona con i file salvati sul telefono. Per le foto che esistono solo in Google Foto, cambia la data nell'app Google Foto.
Posso impostare anche la data di creazione?
La memoria di Android non permette di impostare una data di creazione. La data di modifica è quella che usano le app galleria.