Android挂载obb到外部SD卡失败

时间:2017-03-11 17:33:54

标签: android android-permissions mount

我想将游戏的obb(1GB)移动到SD卡。 将obb文件复制到SD卡,并通过符号链接:

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

但未通过"功能未实施"。

我用谷歌搜索了,并得到了#34;某些文件系统不支持符号链接"。

所以我尝试使用mount by命令:

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

但我发现只有root才能看到该文件夹​​中的文件。 然后我做:

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

但是当我

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

我使用android5,任何解决方案? 感谢。

1 个答案:

答案 0 :(得分:0)

(如果您正在寻找如何将obb移动到外部SD卡并将其安装回内部,这里是正确的位置!) 最后我自己找到了这个问题的解决方案! 应用程序无法自行访问obb,它需要media_rw才能访问它。 由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 

所以我必须将外部sdcard文件夹挂载到两个地方,每个地方必须拥有正确的所有者:

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

但如果我将/storage/sdcard1/Android/obb/com.game挂载到这两个地方,它将成为:

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

然后我发现我是否这样做:

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

我发现这很好用,因为mount命令的源和目标是它们的原始所有者。 该应用程序可以运行得很好!