Como corrigir a data dos arquivos de fotos no Android com adb
Ajuste a data do arquivo de fotos em um celular Android pelo computador, com adb e touch, para a galeria colocar prints, imagens de conversas e fotos copiadas de volta no dia certo.
Para corrigir a data do arquivo de uma foto no Android, conecte o celular com a depuração USB ligada e rode adb shell touch -m -d "2019-07-14 11:05:00" "/sdcard/DCIM/Camera/photo.jpg". Depois peça para a galeria olhar de novo com adb shell content call --uri content://media/ --method scan_volume --arg external_primary. A galeria usa a data do arquivo para toda foto sem data da captura dentro dela, então isso coloca essas fotos de volta no dia real.
Quando esta é a correção certa
A galeria ordena pela data da captura gravada dentro da foto. Só quando não existe essa data ela usa a data do arquivo. Então isto importa para:
- prints e gravações de tela
- imagens do WhatsApp, Telegram e outras conversas
- fotos copiadas para o celular por "Transferência de arquivos", que ganharam a data de hoje como data do arquivo
- fotos restauradas de um app de backup que não manteve as datas
Se a foto tem uma data da captura errada dentro dela, mudar a data do arquivo não ajuda. Mude a data da captura: como mudar a data de uma foto no Android.
O que você precisa
- a depuração USB ligada: como ativar a depuração USB no Android
- o adb do Google no computador, do "SDK Platform-Tools"
- o celular conectado e permitido;
adb devicesmostra o celular comodevice
Veja as datas primeiro
adb shell stat -c '%y %n' "/sdcard/DCIM/Screenshots/*"
Cada linha mostra a data do arquivo e o nome. Uma pasta em que todos os arquivos têm o mesmo dia, o dia em que você copiou, é a que precisa de correção.
Ajuste a data de um arquivo
adb shell touch -c -m -d "2019-07-14 11:05:00" "/sdcard/DCIM/Screenshots/Screenshot_20190714-110500.png"
O -m define a data de modificação, que é a que a galeria lê. O -c garante que o touch nunca crie um arquivo vazio quando o nome estiver digitado errado. Sem o -c, um erro de digitação deixa para trás um arquivo de zero bytes.
A hora é lida no fuso horário do celular. Se preferir ser exato, use os segundos desde 1970: -d @1563095100.
Muitos arquivos: tire a data do nome
A maioria dos celulares e apps de conversa coloca a data no nome do arquivo: Screenshot_20190714-110500.png, IMG-20220925-WA0018.jpg, IMG_20220104_184121.jpg. Um script curto no computador transforma esses nomes em datas e escreve uma linha de touch por arquivo em um script, que o celular roda de uma vez:
adb push dates.sh /data/local/tmp/
adb shell sh /data/local/tmp/dates.sh
adb shell rm /data/local/tmp/dates.sh
Um script com milhares de linhas roda em segundos. Milhares de comandos adb separados levam minutos.
Avise a galeria
adb shell content call --uri content://media/ --method scan_volume --arg external_primary
Isso pede para o verificador de mídia do Android ler todos os arquivos de novo, o que leva um ou dois minutos em um celular cheio. No Android 9 e mais antigos, use isto para cada arquivo:
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d "file:///sdcard/DCIM/Screenshots/photo.png"
Confira
Rode o comando stat de novo e depois abra a galeria. As fotos devem estar agora nos dias reais.
O mesmo sem linha de comando
A aba Celular Android do Photo Date & Metadata Fixer, disponível só no Windows, faz isso em pastas inteiras. Escolha uma pasta no celular, e o app lê a data de cada foto primeiro da data da captura na própria foto, depois do nome, depois da data do arquivo. Ele mostra o que mudaria e ajusta as datas em um passo. Toda mudança pode ser desfeita.
Perguntas frequentes
O touch muda a foto em si?
Não. Ele muda a data que o armazenamento guarda para o arquivo. A imagem e o EXIF continuam como estão.
Funciona com fotos que estão na nuvem do Google Fotos?
Não. Funciona com arquivos guardados no celular. Para fotos que só existem no Google Fotos, mude a data no app Google Fotos.
Dá para ajustar a data de criação também?
O armazenamento do Android não deixa definir uma data de criação. A data de modificação é a que os apps de galeria usam.