2 votes

`adb shell mv` déplace les fichiers mais l'application ne fonctionne plus, alors qu'elle fonctionne si je déplace les mêmes fichiers via le gestionnaire de fichiers

Je essaie de déplacer des fichiers/répertoires liés au compte d'une application (pour des changements de compte) via adb shell mv. Le déplacement des fichiers fonctionne très bien, mais l'application reste bloquée pendant le chargement/la connexion.

Si je déplace les fichiers manuellement via le gestionnaire de fichiers, il n'y a aucun problème du tout (je déplace les fichiers de /data/data/com.example.app vers sdcard et je déplace les mêmes fichiers d'un autre compte vers le dossier de l'application) -> tout fonctionne bien, l'application se charge, le compte est connecté et le changement de compte se fait sans aucun problème.

Si je déplace les fichiers via adb shell mv, l'application reste bloquée pendant le chargement. Si je déplace les fichiers vers sdcard via adb shell mv et je les redéplace avec le gestionnaire de fichiers, cela fonctionne également. Mais si je déplace les fichiers de sdcard vers le dossier de l'application, cela ne fonctionne pas.

J'ai également essayé de copier le fichier via adb shell cp -r mais j'ai rencontré le même problème.

Est-ce que quelqu'un a une idée de quel est le problème ou comment le résoudre? Est-ce que mv corrompt les fichiers? Mais s'il corrompt les fichiers, cela ne fonctionnerait pas si je le déplaçais vers sdcard via shell mv et que je le redéplaçais via le gestionnaire de fichiers.


Il semble que Robert ait raison, le groupe de fichiers change :

Dossier original :

drwxrws--x 8 u0_a295 u0_a295_cache 3452 2024-01-31 10:30
drwxrwx--x 3 u0_a295 u0_a295 3452 2024-01-31 10:31

Dossier après le déplacement :

drwxrws--- 10 u0_a218 media_rw 3452 2024-01-31 10:33
drwxrws--- 4 u0_a218 media_rw 3452 2024-01-31 10:33

Fichiers originaux :

-rw-rw---- 1 u0_a295 u0_a295 1229 2024-01-31 10:32

Fichiers après le déplacement :

-rw-rw---- 1 u0_a218 media_rw 1229 2024-01-31

3voto

pr0nin Points 353

Votre principal problème est que vous déplacez des fichiers et des dossiers entre des sections spéciales du système de fichiers : du dossier app-private où seule l'application a accès à /sdcard un dossier spécial où vous ne pouvez pas exécuter quelque chose et tous les fichiers/dossiers sont attribués à un groupe spécial media_rw.

Pour comprendre pourquoi le dossier app-private fonctionne, vous devez savoir qu'Android a créé pour chaque application un compte utilisateur propre, dans votre exemple, tous les fichiers et dossiers app-private sont détenus par l'utilisateur u0_a295 et le groupe u0_a295 / u0_a295_cache.

Si vous déplacez les fichiers vers /sdcard, le groupe est changé en media_rw car la section de la carte SD le impose. Si vous déplacez ensuite les fichiers vers le dossier app-private, le groupe media_rw reste et les fichiers et dossiers ont un propriétaire et un groupe propriétaire modifiés.

Pour corriger cela, vous pouvez exécuter

chown -R u0_a295:u0_a295 /data/data//files/

Notez que si vous désinstallez et réinstallez l'application ou si vous essayez la même chose avec une application différente, le nom de l'utilisateur et du groupe sera différent (pas u0_a295).

androidalle.com

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.

Powered by:

X