Comment puis-je modifier la date de modification d'un fichier, en particulier des PNG, sur Android sans root ?
Total Commander n'a pas réussi à le faire en raison d'une erreur de permission Accès refusé
.
Comment puis-je modifier la date de modification d'un fichier, en particulier des PNG, sur Android sans root ?
Total Commander n'a pas réussi à le faire en raison d'une erreur de permission Accès refusé
.
RÉPONSE COURTE :
Vous pouvez simplement touch
le fichier ou fournir n'importe quelle heure et date passée ou future :
~$ touch /sdcard/test_file
~# debugfs -R 'stat media/0/test_file' /dev/block/bootdevice/by-name/userdata | grep crtime:
crtime: 0x5c926e0d:2d61b810 -- Mercredi 20 mars 21:45:01 2019
~$ touch -d '2009-2-13 14:32:55' /sdcard/test_file
~$ stat /sdcard/test_file
[...]
Accès : 2009-02-13 14:32:55.000000000 +0000
Modifié : 2009-02-13 14:32:55.000000000 +0000
Changement : 2019-03-20 21:45:38.067021025 +0000
Création : -
Certains explorateurs de fichiers comme MiXplorer proposent également des options pour changer l'heure de modification.
Vous n'avez pas besoin de privilèges superutilisateur pour changer mtime
. Seul le fichier devrait être inscriptible par votre identifiant utilisateur (application dans le cas d'Android).
DÉTAILS :
touch
utilise utimensat pour mettre à jour l'heure d'accès (atime
) et de modification (mtime
) à condition que le système de fichiers prenne en charge l'enregistrement des horodatages dans inode avec les données du fichier.
Le temps de création (btime
/crtime
) - une partie du statut de fichier étendu qui nécessite au moins une taille d'inode de 256 octets - n'est pas normalisé, donc rarement pris en charge par les systèmes de fichiers. Dans les commandes ci-dessus, debugfs
est utilisé avec des privilèges de root pour obtenir l'heure de création du fichier sur ext4
car certains binaires stat
ne sont pas mis à jour pour utiliser statx encore (nécessite au moins le noyau Linux 4.11), donc btime
est vide.
À la fois btime
et l'heure de changement (ctime
; heure de modification de l'inode/métadonnées) sont censés être gérés par le système, pas simplement modifiables par l'utilisateur.
Étant donné qu'Android est basé sur Linux, il hérite du concept d'inode et des horodatages du monde UNIX. Les systèmes de fichiers Linux courants comme ext4
et f2fs
prennent en charge les horodatages, y compris les systèmes de fichiers émulés utilisés par Android sur les cartes SD. D'autres systèmes d'exploitation et systèmes de fichiers ont des concepts similaires avec des terminologies légèrement différentes. Par exemple, sur le NTFS
de Windows, le temps de modification de l'entrée MFT est très similaire à ctime
de UNIX.
touch -m
ne fonctionnait pas pour moi aujourd'hui lorsque le téléphone Android est monté en utilisant SSHFS sur Ubuntu 16.04.6. Cependant, les fichiers copiés sur le téléphone étaient OK. Le plus étonnant...
@WinEunuuchs2Unix cela doit être dû à vos permissions SSHFS (options de montage FUSE). Le système de fichiers émulé d'Android est assez tolérant. Il permet même touch -d
même si vous n'êtes pas le propriétaire du fichier (puisque tous les fichiers dans /sdcard
sont la propriété de root). Sur les systèmes de fichiers *NIX normaux, utimensat
/utimes
ont des exigences de permission strictes. Au fait, avez-vous monté /sdcard
ou /data/media/0
sur SSHFS?
C'est le plus gênant. Le toucher fonctionne manuellement mais pas dans mon programme python lorsque le serveur de fichiers touche le téléphone. Toucher le téléphone au serveur de fichiers fonctionne. Grr trois fois que j'ai exécuté cette mise à jour de deux heures en Wifi. Retour à la case départ. Mon montage est : echo rick | sshfs -o auto_cache,reconnect,defer_permissions -o Ciphers=aes128-ctr -o Compression=no -o password_stdin -p 2222 rick@192.168.0.11:/ /mnt/phone
Le montage du serveur de fichiers est différent, avec un port par défaut de 22 et beaucoup moins compliqué.
Total Commander - système de fichiers - marquez un ou plusieurs fichiers - appui long - propriétés - changez la date affichée selon vos besoins (il y a aussi un bouton "Maintenant") - Enregistrez - voilà !
BTW Total Commander est un excellent outil - dans tous les domaines et sur toutes les plateformes !
AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.