1 votes

Android mount external sdcard obb to internal SD card succeed

(J'ai déjà posé cette question sur Stack Overflow( https://stackoverflow.com/questions/42738392/Android-mount-obb-to-external-sd-card-failed ), j'ai trouvé qu'il était préférable de poser cette question ici).

Je veux déplacer le fichier obb d'un jeu (1GB) sur la carte SD. J'ai copié le fichier obb sur la carte SD, et j'ai fait un lien symbolique par :

su
ln -sf /storage/sdcard1/Android/obb/com.game /sdcard/Android/obb/com.game

mais a échoué avec la mention "fonction non implémentée".

J'ai cherché sur Google, et j'ai obtenu "some filesystem doesn't support symbolic link" (un système de fichiers ne prend pas en charge les liens symboliques).

J'ai donc essayé d'utiliser mount by command :

su
mount -o bind /storage/sdcard1/Android/obb/com.game /sdcard/Android/obb/com.game

mais j'ai constaté que seul Root peut voir les fichiers dans le dossier. C'est ce que je fais :

cd /system/bin/
chmod 4777 ./toolbox #make anyone can use mount(in toolbox)
su u0_aXXX #the game's uid
mount -o bind /storage/sdcard1/Android/obb/com.game /sdcard/Android/obb/com.game
ls -l /sdcard/Android/obb/com.game
$ -rwxrwx--- u0_aXXX sdcard_r com.game.obb

Mais quand je

cat /sdcard/Android/obb/com.game/com.game.obb
$ cat: /sdcard/…ame.obb permission denied

J'utilise android5, une solution ? Merci de votre compréhension.

0voto

Kirk Points 121

(Si vous cherchez comment déplacer obb sur une carte sdcard externe et la remonter sur la carte interne, vous êtes au bon endroit). J'ai enfin trouvé la solution à cette question par moi-même ! L'application ne peut pas accéder à l'obb par elle-même, elle a besoin de media_rw pour y accéder. Trouvé par lsof :

sdcard 340 media_rw 15 ??? ??? ??? ???
/data/media/obb/com.game/com.game.obb
sdcard 340 media_rw 17 ??? ??? ??? ???
/data/media/obb/com.game/com.game.obb
com.game 26335 u0_a266 36 ??? ??? ??? ???
/storage/emulated/0/Android/obb/com.game/com.game.obb
com.game 26335 u0_a266 37 ??? ??? ??? ???
/storage/emulated/0/Android/obb/com.game/com.game.obb 

Je dois donc monter le dossier de la carte SD externe à deux endroits et chacun doit avoir son propre propriétaire :

owner    folder
u0_a266  /storage/emulated/legacy/Android/obb/com.game
media_rw /data/media/obb/com.game

Mais si je monte /storage/sdcard1/Android/obb/com.game à ces deux endroits, il deviendra :

owner    folder
u0_a266  /storage/emulated/legacy/Android/obb/com.game
u0_a266  /data/media/obb/com.game

Puis j'ai trouvé si c'était le cas :

mount -o bind /storage/sdcard1/Android/obb/com.game /storage/emulated/legacy/Android/obb/com.game
mount -o bind /mnt/media_rw/sdcard1/Android/obb/com.game /data/media/obb/com.game

J'ai constaté que cela fonctionnait bien, car la source et la destination de la commande mount sont leur propriétaire d'origine. L'application fonctionne très bien !

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