Comprei recentemente um Nexus 4 e gostaria de transferir minhas fotos do meu dispositivo anterior para ele. Meu telefone Android anterior usava o armazenamento em massa USB padrão, que dava 0 problemas para copiar coisas de um lado para outro, mas o Nexus 4, como muitos outros telefones Android modernos, suponho, usa o MTP, que tem o recurso interessante de se recusar a copiar o original datas / timestamps dos arquivos, usando a data em que os arquivos estão sendo copiados.
Obviamente, isso é uma chatice enorme quando se trata de fotos; não apenas porque não é possível verificar a data original em que a foto foi tirada enquanto você navega no telefone, mas também porque elas acabam completamente sem classificação.
Existe uma maneira de transferir fotos para um telefone Android Jelly Bean que não suporta armazenamento em massa USB, preservando os carimbos de data e hora originais?
Coisas que eu tentei até agora:
- Transferindo via USB MTP
- Envio do ADB (pastas completas e arquivos individuais)
- Transferindo via SSH (usando SSHDroid + WinSCP)
- Upload e download do Dropbox
- Transferindo um arquivo ZIP via MTP e descompacte o arquivo no telefone
- Transferindo do outro telefone via bluetooth
- Função QuickPic "data fixa"
- Sincronização local
- Correção de data da foto
- FTPSyncX
- Sinais de fumaça
- Gritando no telefone
Nenhum deles preservou o registro de data e hora, e isso está me deixando louco.
(Além disso, ainda não estou enraizado, mas se a única maneira viável exigir raiz, eu também agradeceria essa resposta.)
Respostas:
Não é possível, este é um problema de permissão atual ( relatório de erros aqui ) da pasta sdcard do Android 4.0 + se não estiver usando o FAT32 (mas o FUSE).
Razão: Há uma transição do FAT32 para o armazenamento unificado do usuário para aplicativos e dados de mídia (usando ext4) em um único sistema de arquivos.
As propriedades antigas do FAT32 são emuladas usando uma camada FUSE para serem compatíveis com os aplicativos existentes. Além disso: / data / e / sdcard nos dispositivos Google que começam com o Nexus 7 usam apenas uma única partição (/ data / media representa o conteúdo "sdcard" e é exposto usando a camada FUSE aos aplicativos).
Aqui está a implementação do driver FUSE da CyanogenMod, se você estiver interessado em ver a fonte. Parece que a configuração de atributos de carimbo de data e hora está implementada.
EDIT: Funciona apenas com root.
Razão exata: todos os arquivos pertencem a root.sdcard_rw (veja aqui ).
Um chamador sem uid = 0 não pode chamar o syscall utimensat () , ele já falha na camada VFS (EPERM) para registros de data e hora diferentes da atual:
fonte
Recentemente, deparei com esse problema em um Nexus 5 e tentei a maioria das soluções listadas aqui sem sorte. No meu caso, parece ter sido causado por um bug reconhecido no estoque Android ( fonte ).
Minha solução foi a seguinte - usei o Windows 8.1, mas não há razão para que isso não funcione no OSX / Linux (a raiz é necessária no dispositivo).
No seu PC, crie um arquivo .tar.gz de todos os arquivos que você deseja transferir.
Transfira o arquivo morto para o dispositivo usando FTP, garantindo que o comando MFMT seja usado.
No dispositivo, extraia o arquivo morto em um shell como raiz.
su
comando Pode ser necessário conceder acesso se o SuperSU aparecer.cd /sdcard/
tar -xvf ARCHIVE_NAME_HERE.tar.gz
DCIM/Camera
diretório, as imagens não apareceriam no aplicativo da galeria de ações. Se isso acontecer com você, sugiro que você extraia para um diretório diferente e mova (não copie) os arquivos para o diretório da câmera. Eu suspeito que isso seja causado por um problema de permissão. Você pode usar o terminal ou o gerenciador de arquivos de sua escolha para mover os arquivos.Isso permitiu que todos os atributos 'data da modificação' dos arquivos permanecessem intactos e deixou todas as fotos na ordem correta quando exibidas no aplicativo da galeria.
fonte
Verifique os dados EXIF e veja se há um carimbo de data / hora lá.
Se houver, a Correção de data da foto permitirá substituir o registro de data e hora do arquivo danificado pelo EXIF, devolvendo a classificação correta.
fonte
Essa é uma pergunta que realmente me incomoda muito quando se depara com dispositivos que possuem apenas MTP, mas não o modo de armazenamento em massa. Eu também tenho preocupações com isso exatamente pelas mesmas razões de Mahn.
Após alguns testes, encontrei uma solução temporária que talvez consiga preservar o registro de data e hora.
Utiliza o leitor de cartão sdcard / OTG externo e também o comando cp com -a o carimbo de data / hora será capaz de preservar. Mas o requisito é que o telefone precise estar enraizado.
fonte
Como mencionado em outra resposta, em dispositivos que usam o FUSE para emulação de cartão SD (como dispositivos modernos Nexus), somente o root pode alterar os registros de data e hora dos arquivos
/sdcard
. Como coisas como MTP e ADB não são executadas como raiz, não é possível preservar os registros de data e hora com esses métodos. No entanto, se o seu dispositivo estiver enraizado, você poderá corrigir os carimbos de data e hora com uma etapa separada posteriormente.Ao restaurar um backup completo de
/sdcard
um PC Linux para o meu tablet, usei este comando para corrigir todos os carimbos de data e hora após o upload dos arquivos comadb push
:Isso deve ser executado a partir da raiz do diretório no PC que corresponde ao
/sdcard
dispositivo. (Ou, se você fez o upload de algo diferente de um/sdcard
backup completo , altere o caminho notouch
comando próximo ao final. Mas você deve executá-lo a partir de qualquer diretório no PC que corresponda ao diretório notouch
comando.)O modo como funciona é que ele percorre todos os arquivos no PC, obtém o registro de data e hora de cada um e executa um
touch
comando como raiz no dispositivo para definir o registro de data e hora do arquivo correspondente.Observe que isso executará um
su
comando separado para cada arquivo individual. Se você tiver ativado o log no seu programa raiz (por exemplo, SuperSU), convém desativá-lo para evitar a produção de um grande número de entradas de log. E se você tiver seu dispositivo configurado para solicitar confirmação em cadasu
solicitação, provavelmente desejará alterá-lo temporariamente. (Pode ser possível criar uma variação que canalize um fluxo detouch
comandos em um único shell raiz no dispositivo, mas a maneira direta de fazer isso não funcionou quando eu tentei e não queria gastar muito tempo.)Eu usei isso com sucesso em um Nexus 10 com Android 5.1.
fonte
Eu tenho exatamente o mesmo problema. Parece que está sendo bloqueado por um fusível no Nexus 4 executando o Stock JellyBean 4.2.1.
Essa informação foi obtida por meio de uma sessão de shell adb; Presumo que o fusível esteja na mistura para todas as contas no nível do aplicativo.
TL; DR Pelo que parece, isso não pode ser feito sem fazer o root do telefone.
fonte
[old_pictures]$ for f in $(ls -1 * | sort -t _ -k 2); do adb push $f /storage/sdcard0/DCIM/Past/; sleep 3; done;
Se você seguir esse caminho, faça um upload de teste primeiro para ter certeza de que está satisfeito. Além disso, desative o Instant Upload do Google+ enquanto estiver fazendo isso para não receber "envios duplos".Se você usa o aplicativo Google Photo e deseja que seu arquivo seja listado na ordem correta, existe uma solução.
Os antecedentes da questão
Este é um bug do Android. Ele não permite que usuários não root alterem a data de modificação dos arquivos ( https://code.google.com/p/android/issues/detail?id=18624 desde a introdução do multiusuário / sandbox com o sistema de arquivos FUSE) . E não preserva o registro de data e hora ao copiar arquivos com o protocolo MTP ( https://code.google.com/p/android/issues/detail?id=92635 ).
A solução alternativa para usuários do Google Photo
As fotos são ordenadas usando as informações EXIF, se disponíveis, para que você possa usar apenas algumas maneiras de definir os dados EXIF certos. Qualquer câmera deve definir isso automaticamente para você, apenas verifique se a data / hora estão corretas.
Para vídeos ou se você não deseja definir os dados EXIF, acesse https://photos.google.com/ e faça upload de seus vídeos / fotos a partir daí. Ele preserva o carimbo de data / hora da modificação que você possui no seu computador e, como é sincronizado com o seu dispositivo, você verá a foto no aplicativo, classificada corretamente, assim que terminar o upload.
fonte
Use uma ferramenta de sincronização como, por exemplo , FolderSync , que deve cuidar dos registros de data e hora adequadamente. As ferramentas de sincronização devem ser especializadas em lidar com todos os aspectos da manutenção de cópias síncronas - incluindo registros de data e hora, é claro.
fonte
PRESERVANDO DATA MODIFICADA NO DISPOSITIVO NEXUS --- NENHUMA RAIZ NECESSÁRIA ---
Felicidades.. :)
preservar Data de modificação. Não sei como o Droid Explorer faz isso. mas simplesmente funciona.
verifique se a Depuração USB foi marcada antes de usar o Droid Explorer.
um .. há uma limitação embora .. Droid Explorer só pode transferir arquivos, não pastas.
fonte
Use PTP em vez de MTP ao conectar seu telefone por USB. Funciona para mim, eu uso um Samsung Note 4 conectado à máquina Ubuntu 14.04. No entanto, conectar como PTP somente permite copiar imagens / imagens. Todos os outros métodos de cópia de arquivos (bluetooth, WIFI, gerenciador de arquivos) em uma unidade externa alteram a data.
fonte
Minha solução para preservar a data da modificação durante a cópia do arquivo no dispositivo Android com MTP:
Testado em ações LG G2 (sem raiz), Andorid 4.4.2 e HTC one M7, Andorid 4.4.2:
Tanto quanto eu posso ver, as datas de modificação são totalmente preservadas!
fonte
Solução de backup usando o "SanDisk Memory Zone" para preservar a data e hora. copiar / mover arquivos do dispositivo Android para SDCard externo - Testado no Samsung Note 2, Note 3 e Mini SIII
Basta fazer backup dos seus arquivos de foto no SDCard e movê-lo para outro Android, PC, Apple ou outro dispositivo - se não for usado para fazer backup dos seus arquivos de foto, siga estas 8 instruções simples "
fonte
Solução rápida e fácil: basta usar um PC ou Mac para copiar os arquivos do antigo cartão SD (ou PC) para o novo cartão SD. Use um PC / Mac com um leitor / gravador de cartão SD (existem conversores de USB para cartão SD) que vêem o cartão como um armazenamento USB FAT32. Quando terminar de copiar, reinsira o novo cartão no telefone e reinicie.
fonte
Eu mudei para um Moto X 2014 e tive esse problema.
Também tentei muitas coisas, uma solução parecia ser "Motorola Migrate" para sincronizar com dois telefones WiFi (um velho backflip de gengibre). Na galeria, a situação era boa (mesmo em detalhes), mas estranhamente no gerenciador de arquivos a data foi alterada e, após algumas horas, até a galeria também mostrou a data da transferência.
A solução alternativa, se os arquivos não forem muitos, pode ser copiada manualmente, uma a uma, alterando cada vez a data e a hora no telefone.
fonte
Eu tenho um Nexus 4 e tive o mesmo problema com carimbo de data e hora (na verdade todos os arquivos).
Aqui estão as linhas de comando (com telefone enraizado) que usei, graças a um post no Ubuntu:
(no Ubuntu se o Android SDK não estiver instalado)
Para ir na minha pasta "backup", que contém a pasta "savandroid"
Todos os arquivos e pastas que estão no "saveandroid" são enviados para o cartão SD, que funcionaram bem com todos os carimbos de hora corretos!
Nota : No Cyanogenmod, eu tive que selecionar a raiz para "apps and adb" no menu de desenvolvedores. Por padrão, é definido apenas em aplicativos.
fonte
Vou adicionar minha solução que funcionou no Ubuntu
Primeiro instale o simple-mtpfs e instale o fusível
Agora você tem as pastas do telefone montadas nesse diretório, pode usar
rsync -t
oucp -p
copiar as imagens e os tempos criados / modificados / acessados não serão alterados.Trabalhe para mim :)
fonte
Para copiar arquivos do seu Android para o seu PC, mantendo os carimbos de data e hora:
Para restaurá-los de volta ao Android:
Isso funciona criando um arquivo tar dentro do dispositivo, que é imediatamente extraído no seu host e vice-versa.
O "v" permite ver o nome do arquivo que está sendo copiado.
Obviamente, isso pressupõe que você tenha "adb" instalado, que o telefone tenha a depuração USB ativada e que você já tenha validado o certificado de depuração.
fonte
Experimente o aplicativo "Bluetooth File Transfer", que preserva a data de modificação com a mudança. E eu acredito com a cópia também, mas tente primeiro com um arquivo / pasta para ter certeza. Também pode explorar o outro dispositivo via bluebooth.
fonte
Use o SyncMe Wireless e o compartilhamento de rede. Os carimbos de data e hora são preservados e a sincronização é rápida. Consegui fazer backup sem um computador no cartão SD no Kingston MobileLite Wireless em 20 minutos, re-sincronizando instantaneamente.
fonte