Android OS
Общие вопросы

Перенос кэша игр и данных других программ на sdcard2 (ROOT)

Advokat (off) [297]
15 февраля 2014, 13:41

(если клон темы прошу удалить)
Сами знаете, что внутренняя память не резиновая и при установки очередной игры с кэшем часто не хватает места.
Вчера ночью и я столкнулся с данной проблемой. Решение нашел довольно быстро...

Чтобы не мучать линуксоидов скажу: mount -o bind /what/you/mount /where/want/mount

И пока знающие ребята переносят кэши и карты на внешнюю флешку, мы начнем постигать сие премудрие с самого начала :yes2:
Перенос будем рассматривать на примере кэшей игр от Gameloft. (да я знаю что есть спец прога :P )

Внимание!
Данный способ рассматривается на примере для DellStreak7 Android 3.2, точка монтирования внешней флешки в вашем устройстве может называться иначе!!!
Ну и, естественно, все на ваш страх и риск.

1. Определитесь где у вас на sdcard2 будут храниться перенесенные данные и создайте для них папку. Я создал ее с названием Bind
2. Создайте в только что созданной папке еще одну папку с именем gameloft
3. Перенесите в нее содержимое папки /mnt/sdcard/gameloft/games
4. Скачайте с маркета бесплатное приложение Script Manager
5. Решите где у вас будет лежать скрипт. Я создал на внутренней флешке папку Scripts.
6. Запустите Script Manager и перейдите в эту папку.
7. Создайте новый скрипт (меню-(+)) и назовите его bind.sh
8. Щелкните по свежесозданному файлу и в появившемся меню нажмите:
Звездочку - это добавит наш скрипт в избранное.
Черепок - запуск скрипта с root привилегиями.
Шестеренку - добавит скрипт в автозагрузку.
Далее жмем кнопку Edit и открываем скрипт любимым текстовым редактором.
9. Настало время для самого сложного }-)
Структура команды: mount -o bind </что/хотите/смонтировать> </куда/хотите/смонтировать>
Исходя из этого у нас получается: mount -o bind /mnt/sdcard2/bind/gameloft /mnt/sdcard/gameloft/games иными словами мы говорим системе что содержимое папки /sdcard/gameloft/games находится в папке /sdcard2/bind/gameloft
10. В открытом файле (вы ведь не закрыли его еще? ;) ) пишем:
#!/system/bin/sh mount -o bind /mnt/sdcard2/bind/gameloft /mnt/sdcard/gameloft/games exit 0

11. Сохраняем файл и закрываем текстовый редактор.
12. Жмем кнопку Run и идем в папку /gameloft/games
Если кэши в ней видны, значит вы все сделали правильно, можно запустить и проверить игру.
При следующей перезагрузке скрипт выполнится автоматически.

По аналогии переносим другие данные просто дописывая в этот скрипт.

================================

Пример моего скрипта:

#!/system/bin/sh
##Cashe gameloft mount -o bind /mnt/sdcard2/bind/gameloft /mnt/sdcard/gameloft/games
##Cashe Spectral Souls mount -o bind /mnt/sdcard2/bind/hyperdevbox /mnt/sdcard/hyperdevbox
##Maps 2GIS mount -o bind /mnt/sdcard2/bind/2gisMobile /mnt/sdcard/2gisMobile exit 0

===============================

Ответы на вопросы:
Q: У меня нет папки mnt!!!
A: Вам стоит почитать о файловой структуре Android.

Q: А рут обязателен?
A: Да!

Q: Можно же просто симлинк создать!
A: Если вы расскажете как это сделать на fat разметке - пошатнете мир линукса.

Q: Не работает!!!
A: Работает! Делайте строго по инструкции!

============================= скопипатено с 4pda
-------

Назад в тему

Общие вопросы
Список форумов
На главную

0.018 сек
SQL: 3