После рутирования и установки link2sd на моем HTC Explorer у меня по-прежнему возникают проблемы с нехваткой памяти.
В Google Play я не могу скачивать приложения больше 10-15M. Это потому, что папка /cache находится во внутренней памяти, которой катастрофически мало. В моем варианте Google Play пишет сразу в /cache, а не во вложенные папки.
Используя adb как root, я удалил /cache
и создал символическую ссылку /cache -> /mnt/sdcard/cache
. Это нормально, но когда я перезагружаю телефон, символическая ссылка заменяется старой папкой.
Есть ли правильный способ решить эту проблему раз и навсегда?
Спасибо за любую подсказку, А
Увы, это невозможно.
По крайней мере, без перепрошивки таблицы разделов HTC (которая находится в разделе загрузчика, он же hboot). Похоже, что для проводника нет модифицированного hboot. Я знаю только переразбитые hboots для HTC Desire.
Причина:
/cache поддерживается отдельным блочным устройством на всех устройствах Android (т. е. точкой монтирования или разделом), он необходим для хранения файлов обновления прошивки (например, обязательно для зашифрованных телефонов). Поэтому, если вы переместите его, ничего не получится, потому что этот раздел все еще будет там и не освободит место для раздела /data. Если вы уменьшите раздел /cache, OTA-обновления больше не будут возможны (для этого вам придется использовать собственное восстановление).
Вы можете взглянуть на DirectoryBind , который был разработан для таких вещей. Он заботится о настроенных пользователем «монтированиях» во время загрузки, а также по требованию, поэтому ничего не должно «исчезать» при загрузке.
По сути, он предназначен для сопоставления вещей из внутренней памяти / памяти телефона во внешнюю / SD-память - особенно для таких случаев, как ваш, когда внутренняя память заканчивается.
ПРИМЕЧАНИЕ. Согласно ответу ce4 , этот метод не принесет никакой пользы в отношении /data
папки, так как /cache
использует собственный раздел (похоже, это относится ко всем устройствам Android - проверено на 7 разных устройствах от 5 разных производителей; согласно ce4 это особенно необходимо на зашифрованных устройствах, так как незашифрованный раздел требуется для хранения обновлений встроенного ПО для выполнения). Так что, если вы хотите увеличить объем хранилища на /data
, это не относится к /cache
. Но если вам просто нужно больше места в /cache
, это должно быть прекрасно. Затем вы можете использовать исходное блочное устройство (куда /cache
указывал ) для чего-то еще;)
ПРИМЕЧАНИЕ 2: AFAIK Google Playstore использует /data/local
для буферизации своих загрузок. На большинстве устройств это должен быть только каталог в /data
разделе, и поэтому с ним легко может работать DirectoryBind .
Дополнительный совет: проверьте с помощью df
команды из терминала, использует ли каталог, который вы хотите переместить из внутреннего хранилища во внешнее, отдельный раздел или нет.
т0мм13б
mount -o bind /mnt/sdcard/cache /cache
... это в теории, так как никогда не пробовал ...