Всем привет.
Когда я купил Atrix HD, я оказался весьма удивлен количеством доступной встроенной памяти - из заявленных 8 ГБ доступно пользователю чуть больше 4х. Ну да ладно, подумал я, и вставил в телефон свою боевую флешку на 32 гига - теперь-то уж точно хватит)) Однако тут пришло второе удивление - оказывается, кэш игрушек, карты для навигации и вся прочая внешняя хрень - тянутся опять же во внутреннюю память! Которая у меня и закончилась часа через 2.
Небольшое исследование (для которого, правда, пришлось разблокировать загрузчик и получить рут)) - подтвердило подозрения - внутренняя память в наших аппаратах смонтирована как раздел /sdcard/ , и все программы считают, что это и есть флешка, а "настоящая" флешка - получается вроде как и нафик не нужна, так, для красоты.
Собственно, все, что я опишу ниже, актуально для всех телефонов с такой организацией памяти - Razr HD, Razr M и т.д., а думаю, и других марок телефонов, типа SGS3. Пусть в 16-гиговых моделях памяти гораздо больше, однако и она не бездонна.
Поиск по интернетам навел меня на интересный скрипт под названием "поменять внутреннюю память и sd-карту местами", однако после некоторых размышлений я решил, что это не оптимальный выход, поскольку:
Дисклаймер - само собой, если вы угробите телефон следующими действиями, я тут не при чем) Делайте на свой страх и риск. Для начала подразумевается, что у вас получен рут, иначе не заработает запуск скриптов. Также подразумевается, что вы умеете работать с файловыми менеджерами и представляете себе внутреннюю структуру файловой системы телефона - я не буду объяснять, как скопировать папку с места на место, если вы этого не знаете, поверьте, со скриптами лучше и не начинать))
Итак, что делаем.
А я пока обдумаю, есть ли смысл накидать сравнение Atrix HD vs Razr HD
Сообщение отредактировал Legza - 4.6.2013, 11:41
Когда я купил Atrix HD, я оказался весьма удивлен количеством доступной встроенной памяти - из заявленных 8 ГБ доступно пользователю чуть больше 4х. Ну да ладно, подумал я, и вставил в телефон свою боевую флешку на 32 гига - теперь-то уж точно хватит)) Однако тут пришло второе удивление - оказывается, кэш игрушек, карты для навигации и вся прочая внешняя хрень - тянутся опять же во внутреннюю память! Которая у меня и закончилась часа через 2.
Небольшое исследование (для которого, правда, пришлось разблокировать загрузчик и получить рут)) - подтвердило подозрения - внутренняя память в наших аппаратах смонтирована как раздел /sdcard/ , и все программы считают, что это и есть флешка, а "настоящая" флешка - получается вроде как и нафик не нужна, так, для красоты.
Собственно, все, что я опишу ниже, актуально для всех телефонов с такой организацией памяти - Razr HD, Razr M и т.д., а думаю, и других марок телефонов, типа SGS3. Пусть в 16-гиговых моделях памяти гораздо больше, однако и она не бездонна.
Поиск по интернетам навел меня на интересный скрипт под названием "поменять внутреннюю память и sd-карту местами", однако после некоторых размышлений я решил, что это не оптимальный выход, поскольку:
- внешняя sd-карта менее быстрая и расчитана на меньшее количество циклов перезаписи;
- теряется возможность извлечь карту, т.к. с ней потеряем и все программы;
- по умолчанию там заменялась внутренняя память на память флеш-карточки, а сама внутренняя оставалась не использованной, т.е. внутренние 4 гига просто пропадали в никуда. Чтобы наоборот, примонтировать внутреннюю как внешнюю, нужны были какие-то дополнительные неочевидные движения, и я их не осилил)
Дисклаймер - само собой, если вы угробите телефон следующими действиями, я тут не при чем) Делайте на свой страх и риск. Для начала подразумевается, что у вас получен рут, иначе не заработает запуск скриптов. Также подразумевается, что вы умеете работать с файловыми менеджерами и представляете себе внутреннюю структуру файловой системы телефона - я не буду объяснять, как скопировать папку с места на место, если вы этого не знаете, поверьте, со скриптами лучше и не начинать))
Итак, что делаем.
- Предположим, что вы установили игру с огромным кэшем, например, Max Payne, с кэшем в 1.5-2 гига. Кэш у вас по умолчанию находится в каталоге /sdcard/Android/data/com.rockstar.maxpayne
- Берем любой файловый менеджер, которым копируем эту папку целиком на внешнюю sd-карту. Если кто не знает, где в файловом менеджере внешняя флешка - так она здесь: /mnt/external1/ (на самом деле туда есть еще миллион забинденных путей, но этот - самый короткий)). Я сделал на флешке каталог Games, куда кидал кэши, но на практике, конечно же, кидать можно куда угодно. Предположим все же, что скопировали в Games.
- Убедившись, что все скопировалось, удаляем все файлы из /sdcard/Android/data/com.rockstar.maxpayne, но не сам каталог! Видим, что внутренней памяти опять хватает.
- Теперь надо сделать логическую ссылку на наш новый каталог с флешки, "забиндить" его. Простыми словами - мы сделаем так, что система будет думать, что файлы лежат по старому адресу, а они будут по новому, мы обманем систему. Для этого мы создадим скрипт.
- Скрипты писать можно в чем угодно, но я рекомендую программу Smanager из маркета - она все равно нам пригодится для автозапуска скриптов после перезагрузки телефона. Устанавливаем и запускаем Smanager.
Кстати, как вы видите, он включает в себя еще и файл-менеджер, так что, в принципе, все можно делать в нем. (Я, однако, предпочитаю ES файл менеджер). - В Smanager вызываем меню (три точки) - выбираем непонятную команду "Новый макротип". В английской версии все гораздо понятнее - "New script"))
- Вводим имя скрипта - любое, жмем ОК - если система предложит, в чем мы хотим писать скрипт - выбираем SM Editor и попадаем в блокнотик.
- Здесь мы вводим наш скрипт. Выглядит он так:
mount -o bind /mnt/external1/Games/com.rockstar.maxpayne /sdcard/Android/data/com.rockstar.maxpayne
Т.е. команда пробел путь, куда мы скопировали кэш пробел путь, где он должен быть на самом деле - Выбираем меню-сохранить или просто жмем на крестик.
- В основном окне Smanager находим наш скрипт (он лежит внизу списка, вспоминайте имя, которое ввели в п.7) - и нажимаем на него. Попадаем в окно свойств скрипта.
- Выбираем первые 3 иконки и нажимаем на них (это добавить скрипт в избранное, запустить от root, запускать при перезагрузке). Нажимаем кнопку "сохранить". Предварительно можно нажать на кнопку "Run" - чтобы наш скрипт отработал и до перезагрузки.
- Выходим из программы, перезагружаемся (если не нажимали Run) проверяем работоспособность скрипта:
- запустив игру и убедившисть, что все играет и поет
- или просто перейдя файловым менеджером по пути /sdcard/Android/data/com.rockstar.maxpayne. Там будут файлы, а ведь мы их стерли в п.3. Такая вот уличная магия. - При добавлении новых программ в наш скрипт повторяем заново действия 1-2, но новый скрипт не создаем - открываем Smanager, тыкаем в наш скрипт и кнопку "изменить". Собственно, сам скрипт можно найти и дополнить в любом редакторе.
- Окончательный скрипт может быть довольно большим - сюда добавятся любые каталоги, которые мы решили перенести на флеху. В конце каждой строки не должно быть лишних символов! (точек, запятых и т.д. - только перевод каретки).
- Все наши забинденные каталоги мы можем увидеть в файл менеджере, как внешние устройства.
- На флешку переносится только то, что не нужно для обычной работы телефона, т.е. если откажет флешка, или мы ее просто вынем - в памяти все равно остаются все установленные программы, все данные и т.д. Их можно бэкапить титаниумом, поднимать обратно и т.д. Мы не нарушаем систему внутренней памяти.
- Биндить можно целые корневые каталоги, например, добавив в скрипт
mount -o bind /mnt/external1/Games/gameloft /sdcard/gameloft - мы сразу добавим, считай, все игры от gameloft - даже новыые игры, устанавливаемые после этого скрипта потянут кэш сразу на внешнюю флешку. - По идее, можно забиндить сам каталог /sdcard/Android - и больше вообще ничего не придется биндить, все данные программ пойдут на флеху. Но я так не делал, т.к. иногда флешку достаю и меняю, и не хочу, чтобы при этом пропали данные тех приложений, которые нужны, ну например, скины к Fancy Widgets или что еще.
- Т.к. скрипты - это обычный текстовый файл, то достаточно его сохранить на той же внешней SD-карте - и ничего не придется восстанавливать после перепрошивки телефона, вайпа данных и т.д. Просто заново цепляем его через Smanager, и все работает - кэши перекачивать не надо
- Метод универсальный, надежный и безопасный.
А я пока обдумаю, есть ли смысл накидать сравнение Atrix HD vs Razr HD
Сообщение отредактировал Legza - 4.6.2013, 11:41