Сайт о телевидении

Сайт о телевидении

» » Андроид: Простой способ связать внешнюю sd карту и внутреннюю память, чтобы освободить место. Нехватка внутренней памяти на смартфоне — пошаговая инструкция как использовать SD-карту в качестве внутреннего хранилища

Андроид: Простой способ связать внешнюю sd карту и внутреннюю память, чтобы освободить место. Нехватка внутренней памяти на смартфоне — пошаговая инструкция как использовать SD-карту в качестве внутреннего хранилища

Сразу оговорюсь, что речь пойдет не о программах типа link2sd. Принцип похож, но связывать мы будем не программные каталоги, а каталоги данных этих программ, например /sdcard2/Navigon -> /sdcard/Navigon или /mnt/extSdCard/Books -> /sdcard/Books и т.д.
Кроме того, нам нужен рут (куда ж без него). Кстати, после того как я узнал про эту программу, это для меня очередной аргумент за root.

Многие владельцы андроид смартфонов или таблеток с небольшей встроеной памятью наверняка сталкивались со следущей проблемой: вставлена большая sd карта (например 16, 32 или даже 64 Гигабайт), но после установки нескольких тяжеловесных программ наше устройство или очередная программа с наглостью заявляет, что на карте не хватает места. Иногда сама программа небольшая, но после установки лезет в интернет и тянет на смартфон гигабайты данных.
В очередной раз получив сообщение «Нет места» и заглянув на карточку видим, что она практически пуста, зато внутренняя память устройства забита под завязку.
Это происходит потому, что внутренняя память часто используется как каталог по умолчанию для многих программ. Дело в том, что она монтируется как /sdcard , что исторически всегда было внешней sd картой (раньше так оно и было на всех смартфонах). Внешняя же sd карта монтируется в этом случае как /sdcard2 , /mnt/sdcard2 , /mnt/extSdCard или даже /sdcard/.externalSD . Я так понимаю, что это делается изготовителями, чтобы устройство работало из коробки, т.е. совсем без sd карты.

Многие «недобросовестные» программы всегда хотят читать/писать данные из/в каталог /sdcard/НазваниеПодставить. Редко это можно изменить в настройках программы.
В результате имеем, что имеем, и несколько возможностей чтобы поправить сложившееся положение:
Два последних способа тоже не являются панацеей, т.к. требуют определенных навыков от пользователя, кроме того не достаточно «чисты», например известны проблемы при подключении смартфона к компьютеру через usb (не отмонтируются) и т.д.

Поправить положение поможет программа DirectoryBind , которую хороший человек slig из xda написал для себя и выложил на форуме для всеобщего пользования.

QR-код


Хоть публика здесь технически подкованная, но для неискушенных читателей хабра нужно сделать пару пояснений. Как он сам написал (программа not idiot-proof), т.е. врядли пройдет тест на дурака.

После установки запускаем программу (первый раз естественно навечно разрешаем права Root), нажимаем меню затем «Preferences» и выставляем пути по умолчанию на внешнюю память «Default data path» например /sdcard/external_sd/ и внутреннюю память «Default target path» /sdcard/ . Выходим из меню.

Нажимаем меню, затем «Add new entry»

Теперь создадим новую связь каталогов, например перенесем папку CamScanner на внешнюю карту. Долгое нажатие на путь к папкам открывает небольшой встроеный файловый менеджер, в котором можно создать и/или выбрать папку. Папка на внешней карте должна быть создана (и пуста).

Установив галочку в «Transfer files from target to data» файлы и папки будут перенесены из каталога /sdcard/CamScanner/ в каталог /sdcard/external_sd/CamScanner .

Нужно заметить, что связи после создания не активируются автоматически (серая иконка дискеты, как на скрине внизу для gameloft). Для завершения связывания папок, выбираем галочками нужные связи и нажимаем меню -> «Bind checked». Иконки активных (связанных) папок должны стать зелеными.

Кстати если вы хотите присоединить еще и всю внешнюю карточку полностью рекомендую это сделать не так /sdcard/externalSD/ , а с точкой впереди /sdcard/.externalSD/ . Это спасет вас от таких неприятностей как двойные превьюшки в галереях, и т.д. Правда поможет не для всех галерей и плееров, т.к. некоторые ищут медиа и в скрытых каталогах.
Помучившись, я для себя решил, связывать только отдельные каталоги.

UPD. Кстати, внешняя SD карта значительно медленнее внутренней памяти, поэтому перенос данных программы на внешнюю SD, естественно замедляет работу этой программы. Это особенно нужно помнить решившим полностью поменять маунт-пойнты внутренней и внешней памяти, т.к. скорее всего все ваше устройство будет работать медленнее, чем раньше.

Надеюсь эта программа дополнит и вашу копилку полезных утилит для андроид устройств.

Если вы все-таки решились поменять местами внутреннюю и внешнюю память, т.е. переназначить внешнюю sd карту на /sdcard и в настройках устройства нет такой опции - имея рут, это можно легко сделать выполнив следущую операцию:
В Root-Explorer монтируем "/etc" как R/W (если R/O), находим файл "/etc/vold.fstab", сохраняем копию и открываем (длинным кликом) его в Text Editor.
В следующих двух строчках меняем название моунт точек местами: dev_mount sdcard /mnt/sdcard emmc@fat /devices/platform/goldfish_mmc.0 ... dev_mount sdcard /mnt/external_sd auto /devices/platform/goldfish_mmc.1 ... на dev_mount sdcard /mnt/external_sd emmc@fat /devices/platform/goldfish_mmc.0 ... dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.1 ...
Подробнее можно почитать . Там же предлагают, как альтернативу, использовать другую интересную программу Root External 2 Internal SD .
Добавлю, что в обоих случаях, перед переключением, вам нужно скопировать все содержимое папки /sdcard на внешнюю sd карту.
Помните, что после переключения вся ваша система может работать , чем раньше.
Будьте осторожны - нужно понимать, что все что вы делаете под рутом, вы делаете на свой страх и риск, и например сохранение неправильного «vold.fstab» может привести к невозможности загрузить устройство и для лечения нужно будет грузится в рекавери и править «vold.fstab» уже там.

Этот способ можно использовать совместно с DirectoryBind, только теперь наоборот «Default target path» (/sdcard) и все связи созданные в DirectoryBind будут указывать на внешнюю карту.

Современные пользователи не представляют своей жизни без смартфона в кармане, ведь для многих это не просто аппарат помогающий связываться с нужным абонентом, но и своеобразное окно в мир. Наличие хорошего запаса памяти в устройстве очень ценят активные пользователи, многие хранят на носителе не только развлекательные элементы, но и многую полезную информацию, включая документальную информацию.

Согласитесь мало приятно при скачивании важного файла столкнутся с невозможностью его сохранения из за нехватки памяти. Столкнувшись с проблемой нехватки памяти многие задумываются о том, как заменить внутреннюю memory телефона на карту памяти. Следует отметить, что с данной проблемой сталкиваются в основном владельцы китайских телефонов и планшетов.

Давайте попробуем разобраться с этой проблемой более подробно. Для замены пути сохранения приложений вам необходимо наличие определённой программы на вашем устройстве. Следует помнить о возможных рисках и связанных с ними проблем. При неправильной замене памяти может произойти внутренний сбой программы который приведёт к полной перепрошивки телефона. Также может выйти из строя внешний накопитель – карта памяти, для её восстановления тоже придётся воспользоваться перепрошивкой телефона.

Редактируем системный файл

Итак, для того чтобы поменять внутреннюю память на внешнюю и устанавливать любые приложения сразу на карту вам необходимо найти у себя в телефоне или установить программу Root Broswser или же ES Проводник, также необходимо присутствие в системе root прав, как их быстро получить читаем в .

Замена памяти происходит следующим образом: нужно выбрать программу Root Broswser или Проводник и запустить в работу, после этого ищем файл vold.fstab в системе он лежит по адресу устройство/system/etc/ открываем и внимательно читаем файл, нам потребуется отредактировать пару строк.

Для прочтения вам необходимо быть знакомыми со структурой файлов. При внимательном рассмотрении файла вы без проблем найдёте соответствующие строчки, отвечающие за замену внутренней памяти на внешнюю. После нахождения соответствующих строчек вам требуется произвести небольшую манипуляцию и поменять внутреннюю память на внешнюю, иными словами поменять строчки местами, чтобы все выглядело как на изображении ниже.

В данном случае строчка dev_mount sdcard…. отвечает за стандартную сохранность файлов, а dev_mount sdcard2…. за внешнюю (карточку сд). Что бы наша встроенная память точно поменялась на нужную нам внешнюю, для этого необходимо просто изменить некоторые строчки. Но не все и не полностью, а только дополнительные и конечные надписи, которые идут за dev_mount sdcard/storage/sdcard0 и dev_mount sdcard2/storage/sdcard1. Как только сделаем так как на изображение то необходимо сохранить.


После замены внутренней памяти на карту памяти следует перезагрузить телефон. После того как вы перезагрузите своё устройство вы сможете наслаждаться наличием памяти и установка всех последующих игр будет выполняться уже на сд карту. Не упускайте из вида тот факт, что вы все манипуляции проводили вручную и если где то что, то упустили вам придётся отправлять телефон на перепрошивку.

Существует не менее действенный способ замены памяти не используя программу Root Broswser. Для этого вам потребуется произвести всего лишь несколько манипуляций со своим телефоном при помощи компьютера буквально три клика. Первым делом вам потребуется запустить файл HTC Driver Installer и установить его на свой компьютер, чтобы появились все необходимые утилиты для дальнейшей работы.

Второй манипуляцией станет установка драйвера на системный носитель C:\\android-sdk-windows затем следует запустить программу SDK Manager для проверки файлов и их готовность к установке. После этого следует подключить телефон к компьютеру и подтвердить команду: перенести всё на сд карту, читаем далее как это сделать.

Используем ADB

Подключите телефон с заранее включенной в настройках отладкой USB.
Переходим в папку с программой и запускаем файл adb.exe с помощью командной строки cmd, с зажатой кнопкой shift клик правой кнопкой по файлу и выбираем open command windiws here

Откроется командная строка в которой пишем adb devices

Теперь выполните следующую команду, которая и поменяет память местами, просто введите ее и нажмите Enter.

После этих манипуляций следует отключить телефон от компьютера и произвести перезагрузку телефона. После перезагрузки вы сможете убедится в работоспособности кнопки: перенести всё на сд – карту и ву а ля можете смело пользоваться своим телефоном. Теперь все приложения и важные документы и скачанные файлы будут сохранятся на внешнем накопителе.

Следует помнить, что при извлечении карты памяти из телефона установленные приложения пропадут, это наверное единственный минус данного метода. Также рекомендуется использовать внешние накопители не ниже 10 класса, так как маленькие накопители не принесут желаемого результата.

Сразу оговорюсь, что речь пойдет не о программах типа link2sd. Принцип похож, но связывать мы будем не программные каталоги, а каталоги данных этих программ, например /sdcard2/Navigon -> /sdcard/Navigon или /mnt/extSdCard/Books -> /sdcard/Books и т.д.
Кроме того, нам нужен рут (куда ж без него). Кстати, после того как я узнал про эту программу, это для меня очередной аргумент за root.

Многие владельцы андроид смартфонов или таблеток с небольшей встроеной памятью наверняка сталкивались со следущей проблемой: вставлена большая sd карта (например 16, 32 или даже 64 Гигабайт), но после установки нескольких тяжеловесных программ наше устройство или очередная программа с наглостью заявляет, что на карте не хватает места. Иногда сама программа небольшая, но после установки лезет в интернет и тянет на смартфон гигабайты данных.
В очередной раз получив сообщение «Нет места» и заглянув на карточку видим, что она практически пуста, зато внутренняя память устройства забита под завязку.
Это происходит потому, что внутренняя память часто используется как каталог по умолчанию для многих программ. Дело в том, что она монтируется как /sdcard , что исторически всегда было внешней sd картой (раньше так оно и было на всех смартфонах). Внешняя же sd карта монтируется в этом случае как /sdcard2 , /mnt/sdcard2 , /mnt/extSdCard или даже /sdcard/.externalSD . Я так понимаю, что это делается изготовителями, чтобы устройство работало из коробки, т.е. совсем без sd карты.

Многие «недобросовестные» программы всегда хотят читать/писать данные из/в каталог /sdcard/НазваниеПодставить. Редко это можно изменить в настройках программы.
В результате имеем, что имеем, и несколько возможностей чтобы поправить сложившееся положение:
Два последних способа тоже не являются панацеей, т.к. требуют определенных навыков от пользователя, кроме того не достаточно «чисты», например известны проблемы при подключении смартфона к компьютеру через usb (не отмонтируются) и т.д.

Поправить положение поможет программа DirectoryBind , которую хороший человек slig из xda написал для себя и выложил на форуме для всеобщего пользования.

QR-код


Хоть публика здесь технически подкованная, но для неискушенных читателей хабра нужно сделать пару пояснений. Как он сам написал (программа not idiot-proof), т.е. врядли пройдет тест на дурака.

После установки запускаем программу (первый раз естественно навечно разрешаем права Root), нажимаем меню затем «Preferences» и выставляем пути по умолчанию на внешнюю память «Default data path» например /sdcard/external_sd/ и внутреннюю память «Default target path» /sdcard/ . Выходим из меню.

Нажимаем меню, затем «Add new entry»

Теперь создадим новую связь каталогов, например перенесем папку CamScanner на внешнюю карту. Долгое нажатие на путь к папкам открывает небольшой встроеный файловый менеджер, в котором можно создать и/или выбрать папку. Папка на внешней карте должна быть создана (и пуста).

Установив галочку в «Transfer files from target to data» файлы и папки будут перенесены из каталога /sdcard/CamScanner/ в каталог /sdcard/external_sd/CamScanner .

Нужно заметить, что связи после создания не активируются автоматически (серая иконка дискеты, как на скрине внизу для gameloft). Для завершения связывания папок, выбираем галочками нужные связи и нажимаем меню -> «Bind checked». Иконки активных (связанных) папок должны стать зелеными.

Кстати если вы хотите присоединить еще и всю внешнюю карточку полностью рекомендую это сделать не так /sdcard/externalSD/ , а с точкой впереди /sdcard/.externalSD/ . Это спасет вас от таких неприятностей как двойные превьюшки в галереях, и т.д. Правда поможет не для всех галерей и плееров, т.к. некоторые ищут медиа и в скрытых каталогах.
Помучившись, я для себя решил, связывать только отдельные каталоги.

UPD. Кстати, внешняя SD карта значительно медленнее внутренней памяти, поэтому перенос данных программы на внешнюю SD, естественно замедляет работу этой программы. Это особенно нужно помнить решившим полностью поменять маунт-пойнты внутренней и внешней памяти, т.к. скорее всего все ваше устройство будет работать медленнее, чем раньше.

Надеюсь эта программа дополнит и вашу копилку полезных утилит для андроид устройств.

Если вы все-таки решились поменять местами внутреннюю и внешнюю память, т.е. переназначить внешнюю sd карту на /sdcard и в настройках устройства нет такой опции - имея рут, это можно легко сделать выполнив следущую операцию:
В Root-Explorer монтируем "/etc" как R/W (если R/O), находим файл "/etc/vold.fstab", сохраняем копию и открываем (длинным кликом) его в Text Editor.
В следующих двух строчках меняем название моунт точек местами: dev_mount sdcard /mnt/sdcard emmc@fat /devices/platform/goldfish_mmc.0 ... dev_mount sdcard /mnt/external_sd auto /devices/platform/goldfish_mmc.1 ... на dev_mount sdcard /mnt/external_sd emmc@fat /devices/platform/goldfish_mmc.0 ... dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.1 ...
Подробнее можно почитать . Там же предлагают, как альтернативу, использовать другую интересную программу Root External 2 Internal SD .
Добавлю, что в обоих случаях, перед переключением, вам нужно скопировать все содержимое папки /sdcard на внешнюю sd карту.
Помните, что после переключения вся ваша система может работать , чем раньше.
Будьте осторожны - нужно понимать, что все что вы делаете под рутом, вы делаете на свой страх и риск, и например сохранение неправильного «vold.fstab» может привести к невозможности загрузить устройство и для лечения нужно будет грузится в рекавери и править «vold.fstab» уже там.

Этот способ можно использовать совместно с DirectoryBind, только теперь наоборот «Default target path» (/sdcard) и все связи созданные в DirectoryBind будут указывать на внешнюю карту.

Проблема нехватки памяти – одна из основоположных как для ПК, так и для мобильных устройств. При малом количестве свободной памяти система обычно начинает подтормаживать, подвисать, работает нестабильно и ненадёжно. Особенно актуально это для Андроид-устройств, многие из которых изначально обладают довольно небольшим объёмом основной памяти (т.н. «Internal Storage»). В такой ситуации у некоторых пользователей может возникнуть идея попробовать использовать внешнюю SD-карту в качестве основной памяти на их Андроид-устройстве. В данном материале я расскажу, как SD-карту сделать основной памятью на гаджетах Андроид, и какие способы нам в этом помогут.

Разбираем, как SD-карту сделать основной памятью на Андроид

Для осуществления данной задачи вам понадобится скоростная SD-карта (желательно, 10 класса или быстрее). Карты 6, а особенно 4 и 2 классов для таких целей не пригодны, ваша система вследствие их использования существенно замедлит свою работу, что вряд ли понравится кому-то из пользователей.

Также важно понимать, что срок действия такой SD-карты вследствие активной на неё нагрузки будет существенно меньше, нежели если бы нагрузка на карту проходила в стандартном режиме.


Способ №1. Изменяем содержимое файла Vold.fstab

Первый из описанных способов предполагает изменение содержимого файла системных настроек «Vold.fstab». После осуществления указанных изменений ОС Андроид будет считать вашу SD-карту внутренней памятью устройства, при этом учтите, что ряд установленных ранее приложений могут перестать работать.

Важно знать, что данный способ работает только на рутированных устройствах, на которых установлена ОС Андроид ниже (!) , нежели версия 4.4.2. В версиях ОС Андроид 4.4.2 и выше указанный файл, скорее всего, вы попросту не найдёте.

Также учтите, что ошибка в реализации данного способа (в частности, добавление в нужные строки лишних символов) может самым печальным образом сказаться на работоспособности вашего устройства. Потому тщательно взвесьте возможные риски, и если, всё-таки, приняли решение, тогда приступайте к его реализации.

Итак, для осуществления данного способа выполните следующее:

Например, это могут быть такие строки:

  • dev_mount sdcard/storage/sdcard0 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard1 auto/xxxxxx

Для осуществления нужных изменений нам необходимо поменять путь в указанных строках местами, то есть, проще говоря, вместо 0 поставьте единичку в первой строке, а во второй вместо 1 поставьте 0.

После изменений эти строки будут иметь вид:

  • dev_mount sdcard/storage/sdcard1 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard0 auto/xxxxx

Сохраните произведёнными вами изменения, а затем перезагрузите гаджет.

Ещё один вариант как сделать карту памяти основной на андроид:


Способ №2. Используем настройки ОС Андроид 6.0 и выше

Кроме первого способа, в котором я рассмотрел, как переключить память телефона на карту памяти, существует и другой способ, работающий только на настройках ОС Андроид 6.0 (Marshmallow) или выше, и позволяющий задействовать SD-карту как основную для сохранения файлов и работы с ними. Для его реализации рекомендую сделать копию данных с вашей SD-карты (если таковые на ней имеются), так как данная карта будет отформатирована системой.