簡體   English   中英

Android掛載obb到外部SD卡失敗

[英]Android mount obb to external SD card failed

我想將游戲的obb(1GB)移動到SD卡。 將obb文件復制到SD卡,並通過以下符號鏈接:

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

但失敗了“功能沒有實現”。

我用谷歌搜索它,並得到“一些文件系統不支持符號鏈接”。

所以我嘗試使用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,任何解決方案? 謝謝。

(如果你正在尋找如何將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命令的源和目標是它們的原始所有者。 該應用程序可以運行得很好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM