J'ai récemment acheté un Nexus 4 et j'aimerais y transférer mes photos de mon ancien appareil. Mon précédent téléphone Android utilisait le stockage de masse USB standard, ce qui n'a posé aucun problème pour copier des trucs d'avant en arrière, mais le Nexus 4, comme de nombreux autres téléphones Android modernes, je suppose, utilise à la place MTP, qui a la caractéristique intéressante de refuser de copier l'original dates / horodatages des fichiers, en utilisant à la place la date à laquelle les fichiers sont copiés.
C'est évidemment une énorme déception en ce qui concerne les photos; non seulement parce que l'on ne peut pas vérifier la date d'origine à laquelle la photo a été prise lors de la navigation sur le téléphone, mais aussi parce qu'elles finissent par ne pas être triées.
Existe-t-il un moyen de transférer des photos vers un téléphone Android Jelly Bean qui ne prend pas en charge le stockage de masse USB en préservant les horodatages d'origine?
Ce que j'ai essayé jusqu'à présent:
- Transfert via USB MTP
- ADB push (à la fois les dossiers complets et les fichiers individuels)
- Transfert via SSH (en utilisant SSHDroid + WinSCP)
- Téléchargement et téléchargement depuis Dropbox
- Transférer un fichier ZIP via MTP et décompresser le fichier sur le téléphone
- Transfert depuis l'autre téléphone via Bluetooth
- Fonction QuickPic "date fixe"
- Synchronisation locale
- Correction de la date de la photo
- FTPSyncX
- Signaux de fumée
- Crier au téléphone
Aucun d'entre eux n'a conservé l'horodatage, ce qui me rend fou.
(De plus, je ne suis pas encore enraciné, mais si le seul moyen viable nécessite un root, j'accueillerais également cette réponse.)
Réponses:
Vous ne pouvez pas, il s'agit d'un problème d'autorisation actuel ( rapport de bogue ici ) du dossier s / scard d'Android 4.0 + s'il n'utilise pas FAT32 (mais FUSE).
Raison: il y a une transition de FAT32 vers un stockage utilisateur unifié pour les applications et les données multimédias (en utilisant ext4) sur un seul système de fichiers.
Les anciennes propriétés FAT32 sont émulées à l'aide d'une couche FUSE pour être compatibles avec les applications existantes. De plus: / data / et / sdcard sur les appareils Google commençant par le Nexus 7 n'utilisent qu'une seule partition (/ data / media représente le contenu "sdcard" et est exposé en utilisant la couche FUSE aux applications).
Voici l' implémentation du pilote FUSE par CyanogenMod si vous souhaitez voir la source. Il semble que la définition des attributs d'horodatage soit implémentée.
EDIT: Cela ne fonctionne qu'avec root.
Raison exacte: tous les fichiers appartiennent à root.sdcard_rw (voir ici ).
Un appelant sans uid = 0 ne peut pas appeler le syscall utimensat () , il échoue déjà dans la couche VFS (EPERM) pour les horodatages autres que le courant:
la source
J'ai récemment rencontré ce problème sur un Nexus 5 et j'ai essayé la plupart des solutions répertoriées ici sans succès. Dans mon cas, cela semble être causé par un bogue reconnu avec le stock Android ( source ).
Ma solution était la suivante - j'ai utilisé Windows 8.1, mais aucune raison pour laquelle cela ne fonctionnerait pas sur OSX / Linux (la racine est cependant requise sur l'appareil).
Sur votre PC, créez une archive .tar.gz de tous les fichiers que vous souhaitez transférer.
Transférez l'archive sur le périphérique via FTP, en vous assurant que la commande MFMT est utilisée.
Sur l'appareil, extrayez l'archive dans un shell en tant que root.
su
commande. Vous devrez peut-être accorder l'accès si SuperSU apparaît.cd /sdcard/
tar -xvf ARCHIVE_NAME_HERE.tar.gz
DCIM/Camera
répertoire, les images ne s'afficheraient pas du tout dans l'application de la galerie de stock. Si cela vous arrive, je vous suggère d'extraire dans un autre répertoire, puis de déplacer (et non de copier) les fichiers dans le répertoire de votre caméra. Je soupçonne que cela est dû à un problème d'autorisations. Vous pouvez utiliser le terminal ou le gestionnaire de fichiers de votre choix pour déplacer les fichiers.Cela a permis à tous les attributs de la date de modification des fichiers de rester intacts et de laisser toutes les photos dans le bon ordre lors de leur visualisation dans l'application de la galerie.
la source
Vérifiez les données EXIF et voyez s'il y a un horodatage.
S'il y en a, la correction de la date de la photo vous permettra d'écraser l'horodatage du fichier bâclé avec celui EXIF, vous redonnant ainsi votre tri correct.
la source
C'est une question qui me dérange beaucoup lorsque je rencontre des appareils qui n'ont que MTP mais pas le mode de stockage de masse. J'ai également des préoccupations à ce sujet pour exactement les mêmes raisons avec Mahn.
Après quelques tests, j'ai trouvé une solution temporaire qui peut peut-être conserver l'horodatage.
Il utilise le lecteur de carte sdcard / OTG excternal ainsi que la commande cp avec -a que l'horodatage pourra conserver. Mais l'exigence est que le téléphone doit être enraciné.
la source
Comme mentionné dans une autre réponse, sur les appareils qui utilisent FUSE pour l'émulation de carte SD (tels que les appareils Nexus modernes), seul root peut modifier les horodatages des fichiers dans
/sdcard
. Étant donné que des choses comme MTP et ADB ne s'exécutent pas en tant que root, vous ne pouvez pas conserver les horodatages avec ces méthodes. Cependant, si votre appareil est enraciné, vous pouvez corriger les horodatages avec une étape distincte par la suite.Lors de la restauration d'une sauvegarde complète d'
/sdcard
un PC Linux sur ma tablette, j'ai utilisé cette commande pour corriger tous les horodatages après le téléchargement des fichiers avecadb push
:Cela doit être exécuté à partir de la racine du répertoire sur le PC qui correspond à
/sdcard
sur l'appareil. (Ou, si vous avez téléchargé autre chose qu'une/sdcard
sauvegarde complète , changez le chemin dans latouch
commande vers la fin. Mais vous devez l'exécuter à partir du répertoire du PC correspondant au répertoire de latouch
commande.)La façon dont cela fonctionne est qu'il parcourt tous les fichiers du côté PC, obtient l'horodatage de chacun et exécute une
touch
commande en tant que root sur l'appareil pour y définir l'horodatage du fichier correspondant.Notez que cela exécutera une
su
commande distincte pour chaque fichier individuel. Si la journalisation est activée dans votre programme racine (par exemple, SuperSU), vous souhaiterez peut-être la désactiver pour éviter de produire un grand nombre d'entrées de journal. Et si votre appareil est configuré pour demander une confirmation à chaquesu
demande, vous voudrez probablement changer cela temporairement. (Il peut être possible de proposer une variante qui canalise un flux detouch
commandes dans un seul shell racine sur l'appareil, mais la manière simple de le faire n'a pas fonctionné lorsque je l'ai essayé, et je ne voulais pas dépenser beaucoup de temps dessus.)Je l'ai utilisé avec succès sur un Nexus 10 fonctionnant sous Android 5.1.
la source
J'ai exactement le même problème. Il semble qu'il soit bloqué par un fusible sur le Nexus 4 exécutant Stock JellyBean 4.2.1.
Cette information a été prise via une session shell adb; Je suppose que le fusible sera dans le mélange pour tous les comptes au niveau de l'application.
TL; DR À première vue, cela ne peut pas être fait sans enraciner le téléphone.
la source
[old_pictures]$ for f in $(ls -1 * | sort -t _ -k 2); do adb push $f /storage/sdcard0/DCIM/Past/; sleep 3; done;
Si vous suivez cette voie, effectuez d'abord un test de téléchargement pour vous assurer que vous êtes satisfait. Désactivez également Google+ Instant Upload pendant que vous y êtes afin de ne pas obtenir de "doubles téléchargements".Si vous utilisez l'application Google Photo et que vous souhaitez que votre fichier soit répertorié dans le bon ordre, il existe une solution.
Le fond du problème
Ceci est un bug Android. Il ne permet pas aux utilisateurs non root de changer la date de modification des fichiers ( https://code.google.com/p/android/issues/detail?id=18624 depuis l'introduction du multi-utilisateur / sandbox avec le système de fichiers FUSE) . Et ne conserve pas l'horodatage lors de la copie de fichiers avec le protocole MTP ( https://code.google.com/p/android/issues/detail?id=92635 ).
La solution de contournement pour les utilisateurs de Google Photo
Les photos sont commandées en utilisant les informations EXIF si elles sont disponibles, vous pouvez donc simplement utiliser toutes les manières de leur donner les bonnes données EXIF. N'importe quel appareil photo doit régler cela automatiquement pour vous, assurez-vous simplement que la date / heure est correcte.
Pour les vidéos ou si vous ne souhaitez pas définir les données EXIF, accédez simplement à https://photos.google.com/ et téléchargez vos vidéos / photos à partir de là. Il préserve l'horodatage de modification que vous avez sur votre ordinateur et puisqu'il est synchronisé avec votre appareil, vous verrez la photo dans l'application, correctement triée, dès que vous avez terminé le téléchargement.
la source
Utilisez un outil de synchronisation comme par exemple FolderSync , qui devrait prendre soin des horodatages en conséquence. Les outils de synchronisation doivent être spécialisés dans la gestion de tous les aspects de la maintenance réelle des copies synchrones - y compris les horodatages, bien sûr.
la source
DATE DE CONSERVATION MODIFIÉE SUR LE DISPOSITIF NEXUS --- AUCUNE RACINE REQUISE ---
à votre santé.. :)
il conserve la date de modification. Je ne sais pas comment Droid Explorer le fait. mais ça marche.
assurez-vous que le débogage USB est coché avant d'utiliser Droid Explorer.
euh ... il y a une limitation cependant ... Droid Explorer ne peut transférer que des fichiers, pas des dossiers.
la source
Utilisez PTP au lieu de MTP lors de la connexion de votre téléphone par USB. Cela fonctionne pour moi, j'utilise un Samsung Note 4 connecté à une machine Ubuntu 14.04. Cependant, la connexion en tant que PTP ne permet que la copie de photos / images. Toutes les autres méthodes de copie de fichiers (Bluetooth, WIFI, gestionnaire de fichiers) sur un lecteur externe changeront la date.
la source
Ma solution pour conserver la date de modification lors de la copie de fichiers sur un appareil Android avec MTP:
Testé sur stock LG G2 (sans root), Andorid 4.4.2 et HTC One M7, Andorid 4.4.2:
Pour autant que je puisse voir, les dates de modification sont entièrement conservées!
la source
Solution de sauvegarde utilisant "SanDisk Memory Zone" pour conserver la date d'horodatage. copier / déplacer des fichiers depuis un appareil Android vers une carte SD externe - Testé sur Samsung Note 2, Note 3 et Mini SIII
Il vous suffit de sauvegarder vos fichiers photo sur SDCard et de déplacer la carte vers un autre appareil Android, PC, Apple ou autre. Si vous ne l'utilisez pas pour sauvegarder vos fichiers photo, suivez ces simples instructions en 8 étapes "
la source
Solution simple et rapide: utilisez simplement un PC ou un Mac pour copier les fichiers de l'ancienne carte SD (ou PC) vers la nouvelle carte SD. Utilisez un PC / Mac avec un lecteur / graveur de carte SD (il existe des convertisseurs de carte USB vers SD) qui considère la carte comme un stockage USB FAT32. Une fois la copie terminée, réinsérez la nouvelle carte dans votre téléphone et redémarrez.
la source
Je suis passé à un Moto X 2014 et j'ai eu ce problème.
J'ai aussi essayé beaucoup de choses, une solution semblait être "Motorola Migrate" pour synchroniser avec WiFi deux téléphones (un vieux backflip en pain d'épice). Dans la galerie, la situation était bonne (même dans les détails), mais étrangement dans le gestionnaire de fichiers, la date a été modifiée, et après quelques heures, même la galerie a également montré la date de transfert.
La solution de contournement, si les fichiers ne sont pas trop nombreux, pourrait être copiée manuellement un par un, en changeant à chaque fois la date et l'heure sur le téléphone.
la source
J'ai un Nexus 4 et j'ai eu le même problème avec l'horodatage et les photos (en effet tous les fichiers).
Voici les lignes de commande (avec un téléphone rooté) que j'ai utilisées, grâce à un post sur Ubuntu:
(sur Ubuntu si le SDK Android n'est pas installé)
Pour aller dans mon dossier "backup" qui contient le dossier "savandroid"
Tous les fichiers et dossiers qui sont dans "saveandroid" sont envoyés sur la carte SD fonctionnaient bien avec tous les horodatages corrects!
Remarque : Sur Cyanogenmod, j'ai dû sélectionner root pour "apps and adb" dans le menu des développeurs. Par défaut, il n'est défini que sur les applications.
la source
Je vais ajouter ma solution qui a fonctionné sur Ubuntu
Installez d'abord simple-mtpfs et installez fuse
Vous avez maintenant vos dossiers de téléphone montés sur ce répertoire, vous pouvez utiliser
rsync -t
, oucp -p
pour copier les images et les heures créées / modifiées / accessibles ne seront pas changées.Travaille pour moi :)
la source
Pour copier des fichiers de votre Android vers votre PC en gardant des horodatages:
Pour les restaurer sur Android:
Cela fonctionne en créant un fichier tar dans l'appareil, qui est immédiatement extrait sur votre hôte et vice versa.
Le "v" vous permet de voir le nom du fichier copié.
Bien sûr, cela suppose que "adb" est installé, que le débogage USB est activé sur le téléphone et que vous avez déjà validé le certificat de débogage.
la source
Essayez l'application "Transfert de fichiers Bluetooth", elle conserve la date modifiée avec le déplacement. Et je crois aussi avec copie mais essayez d'abord avec un fichier / dossier pour vous en assurer. Il peut également explorer l'autre appareil via Bluebooth.
la source
Utilisez SyncMe Wireless et le partage réseau. Les horodatages sont conservés et la synchronisation est rapide. J'ai pu sauvegarder sans ordinateur sur la carte SD de Kingston MobileLite Wireless en 20 minutes, resynchroniser instantanément.
la source