Поменять местами внутреннюю память. Как на "Андроиде" поменять местами память? Что нужно сделать? Какие ещё есть методы

Windows 8

Как увеличить внутреннею память Android устройства

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

Увеличения памяти с помощью файлового менеджера

Чтобы решить эту проблему и увеличить внутреннею память на Андроид устройстве нам будет нужна включенная SD-карта и файловый менеджер Root Explorer который можно скачать .

  1. В Root Explorer ищем system/etc/ внутри папки ищем файл vold.fstab
  2. Открываем его через встроенный Редактор текста
  3. Ищем начало строк dev_mount sdcard /storage/sdcard0 ... и dev_mount sdcard2 /storage/sdcard1 ...
  4. Меняем местами sdcard0 с sdcard2
  5. Сохраняем и выходим
  6. Перезагружаем мобильный

После всех манипуляций внутренняя память имеет размер установленной в Андроид SD-карты! В настройках->память, переключите на внутреннею память. Радуйтесь большем внутреннем месту!)

Увеличения памяти с помощью Lucky Patcher

В данной статье мы рассмотрим, как поменять местами память на Android, а именно внутреннюю память с внешним запоминающим устройством SD-картой. Благодаря этому действию, вы можете повысить производительность своего смартфона или планшета.

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

К счастью, мы знаем решение, как поменять местами встроенную память и память SD карты.

Как поменять местами внутреннюю память и память SD-карты на Android

Решение достаточно простое. Вам нужно получить Root права на устройстве, чтобы запустить Xposed installer. Дальше мы будем использовать модуль Xposed XInternalSD или PR Swap SD, чтобы поменять местами память. Ниже более подробно об этом.


Вот и все! Теперь системные API файлы для хранения данных изменены, и устройство видит внешнюю SD-карту в качестве внутреннего хранилища.

Еще вы можете использовать приложение PR Swap SD, чтобы поменять местами память.

Готово! Вам удалось поменять местами память на Android. Как видите, инструкция достаточно простая, но необходимо быть внимательным во время установки Xposed installer. Вы можете поменять местами память, чтобы увеличить количество доступной памяти, а также повысить скорость работы устройства.

Как и обещал в комментариях к заметке «Deployment Manager или куда ещё можно задеплоить файлы », покопался ещё немного в файловой системе (а точнее в Иерархии каталогов). Основой для этой статьи стал вопрос от Дмитрия Кузьменко , очень надеюсь, что смог ответить на него в необходимом объёме. Немного поговорим об OC Android, производителях устройств работающих под управлением этой операционки, а также я покажу несколько вариантов получения списка доступных устройств хранения информации.


Продолжение для Android 4.4.* тут: Android 4.4 и запись на внешнюю карту памяти...

Upd (17.02.14). На основе комментариев внесены правки в приложения.
Upd2 (17.02.14). Обнаружено ложное срабатывание 3-го варианта, особенность пофиксил. Немного улучшил поиск.

Upd (30.03.14). Третий способ работает на версиях Android ниже 4.3. Для версий выше 4.3 код не напишу, т.к. не имею устройств с такой версией Android для анализа новой структуры.
Upd (21.04.14). Проверил код на Delphi XE6

Upd3 (15.07.14). Обновление исходного кода, обнаружена не правильная работа (ошибка AV) на некоторых устройствах

Постараюсь изложить всю суть кратко, чтобы не получилось 10 страниц текста.

Начнём с основ.

Операционная система Android основана на ядре Linux. В Unix-подобных операционных системах существует только один корневой каталог, а все остальные файлы и каталоги вложены в него. В большинстве UNIX-подобных систем съёмные диски, флеш-накопители и другие внешние устройства хранения данных монтируют в каталог /mnt, /mount или /media (в нашем случае это папка /mnt). UNIX-подобные операционные системы также позволяют автоматически монтировать диски при загрузке операционной системы.

Определяем список доступных устройств хранения информации.

Сразу нужно сказать, что в Android API я не нашёл метода, позволяющего определить подобный список. Поэтому первое, что приходит в голову, это проверка возможных путей самостоятельно и тут появляется первое «НО». Всё было бы просто, если бы не производители устройств, которые так и хотят что-то изменить в Android, вот и в этом случае они постарались. Я поэкспериментировал и выяснил, что количество возможных вариантов путей достаточно большое и узнать их все почти невозможно, разве что начать собирать общую базу таких вариантов со всех владельцев Android устройств.

В моих экспериментах участвовали (моё только одно - SGS2:):

  • Samsung Galaxy S Plus – Android 2.3.6
  • Samsung Galaxy S2 – Android 4.1.2
  • HTC Sensation Z710e – Android 4.0.3
  • HTC One X – Android 4.2.2
  • HTC Rhyme – Android 4.0.3

Теперь давайте посмотрим, какие пути доступны на этих устройствах, нам важны путь до внутренней карты (если есть), внешней карты (если есть) и usb устройств (если есть).

Как видите пути везде разные.

Вариант #1.

Составляем массив возможных значений и в цикле проверяем каждое на доступность при помощи обычной проверки на существование папки (TDirectory.Exists ), а также на пустоту папки (TDirectory.IsEmpty ).

Я составил общий список для данных устройств и написал небольшое приложение для проверки.

Мой список (основан на 5-ти популярных устройствах):

  • /mnt/sdcard
  • /mnt/sdcard/external_sd
  • /mnt/extSdCard
  • /mnt/usb
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF

Поискав подобные пути в интернете, нашёл ещё 3 возможных пункта:

  • /mnt/external_sd
  • /mnt/usb_storage
  • /mnt/external

Дополнение от Дмитрия Кузьменко :

Sony Xperia V - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk

Ещё немного:
Sony Xperia Go - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk
Samsung Galaxy S4 - 4.2.2
  • /mnt/sdcard
  • /mnt/extSdCard
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF
Готовый массив вы найдёте в коде ниже. Вы можете оставить в комментариях информацию о путях на ваших устройствах в таком виде:

Название устройства – версия Android

Прямой путь до внутренней памяти

Прямой путь до внешней карты памяти

Прямые пути до USB устройств

Все пути начинаются с папки /mnt/.


Или скопируйте и вышлите мне файл "/etc/vold.fstab" на почту infocean @ gmail.com или в комменты (не забудьте указать модель устройства и версию Android"а). Пожалуйста, указывайте также все папки, которые есть в директории /mnt/, это очень важно.

Приложение:

Uses System.IOUtils; const pathmnt: Array of String = ("/mnt/sdcard", "/mnt/sdcard/external_sd", "/mnt/extSdCard", "/mnt/usb", "/mnt/UsbDriveA", "/mnt/UsbDriveB", "/mnt/UsbDriveC", "/mnt/UsbDriveD", "/mnt/UsbDriveE", "/mnt/UsbDriveF", "/mnt/external_sd", "/mnt/usb_storage", "/mnt/external", "/mnt/ext_card", "/mnt/usbdisk"); procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin Memo1.Lines.Clear; Memo2.Lines.Clear; for i:= 0 to Length(pathmnt) - 1 do begin if TDirectory.Exists(pathmnt[i]) AND not TDirectory.IsEmpty(pathmnt[i]) then begin Memo1.Lines.Add(pathmnt[i]); Memo2.Lines.Add("True"); end else begin Memo1.Lines.Add(pathmnt[i]); Memo2.Lines.Add("False"); end; end; end;

Вариант #2.

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

Есть такой файлик «vold.fstab », лежит тут «/etc/»(«/system/etc/»). Это один из конфигурационных файлов в UNIX-подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации. Описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.

И есть файл «mounts », лежит тут «/proc/». Содержит информацию обо всех точках монтирования, используемых в устройстве. Важно понимать, что если карта памяти не упоминается в данном файле, то она не подключена. Это означает, что файл постоянно обновляется.

Пошагово:

  1. Читаем файл «vold.fstab »
  2. Проверяем каждое устройство на доступность, при помощи чтения файла «mounts » и поиска в нём нужной строки.

В этом варианте пока не будет кода, т.к. по какой-то неведомой мне причине, у меня не получается прочитать файл «mounts». В связи с этим предлагаю третий вариант.


Вариант #3.

Объединяем первый и второй варианты. Список будем брать из файла «vold.fstab », а проверять своими силами, не открывая при этом файл «mounts ». Зачем каждый раз мучать два файла, когда можно работать только с одним.

Пошагово:

  1. Читаем файл «vold.fstab »
  2. Составляем список устройств хранения информации (половина дела сделали)
  3. Теперь в цикле пробегаемся по списку и проверяем каждый путь с помощью «TDirectory.Exists » и «TDirectory.IsEmpty »
  4. Составляем список реально доступных устройств хранения информации

Update-17.02.14: Благодаря Дмитрию Кузьменко и общим усилиям выяснили, что файл «/etc/vold.fstab» в Sony Xperia V немного отличается от остальных, поэтому были внесены изменения в исходный код приложения. Всё проверили, работает! :) Исходники везде обновил.

Update2-17.02.14: В файле "/etc/vold.fstab" иногда встречаются (на некоторых устройствах) закомментированные строчки, которые очень похожи на искомые в моём коде, в связи с этим происходило ложное срабатывание. Эту особенность я пофиксил в новой версии кода.
Также пофиксил поиск нужных строчек, теперь он более универсален!

В общем, теперь код должен нормально отрабатывать на разных устройствах. Пробуйте, отписывайтесь в комменты, прикладывайте свой файл "/etc/vold.fstab" (не забывайте указывать модель устройства и версию Android).

Update3 - 15.07.14:
Читатель блога Sergey Yakimenko , обнаружил не правильную работу (чтение файла) третьего варианта на устройствах Huawei Ascend P6 и Reellex TAB-07 , о чём сообщил в комментариях.

После личной переписки и некоторого анализа, я выяснил, что за проблемы мешали работе.

Обнаруженные и исправленные проблемы:

  1. Пробелы в начале каждой найденной строчке. Исправлено при помощи "Trim"
  2. В найденных строчках используется табуляция вместо пробелов. Исправлено заменой символов табуляции на пробелы.
Код обновлён. Сергею большое спасибо.

Приложение:

Uses System.StrUtils, System.IOUtils; procedure TForm1.Button1Click(Sender: TObject); var OpenFileVold: TStringList; i: Integer; pathtemp: TStringDynArray; begin OpenFileVold:= TStringList.Create; try // Читаем файл OpenFileVold.LoadFromFile("/etc/vold.fstab"); for i:= 0 to OpenFileVold.Count - 1 do begin if (Pos("dev_mount", OpenFileVold.Strings[i]) > 0) OR (Pos("fuse_mount", OpenFileVold.Strings[i]) > 0) then begin // Update(15.07.14) // 1 - Удаляем пробелы в начале и в конце строке (избавляемся от AV) // 2 - Заменяем символы табуляции на пробелы pathtemp:= SplitString(StringReplace(Trim(OpenFileVold.Strings[i]), #9, " ", ), " "); // Проверяем первый символ строки на совпадение с символом "#" или "##", // чтобы не было ложных срабатываний if (pathtemp <> "#") AND (pathtemp <> "##") then begin if TDirectory.Exists(pathtemp) AND not TDirectory.IsEmpty(pathtemp) then begin Memo1.Lines.Add(pathtemp); end; end; end; end; finally OpenFileVold.Free; // FreeAndNil(SourceFile); end; end;

Итог: Научились получать список доступных устройств хранения информации (я использовал бы третий вариант). Текста (без кода и картинок) вышло на 3 страницы, скорее всего, заскучать не успели:)

Всем спасибо за внимание и удачной разработки.

P.s. Дополнения приветствуются.
p.s.2. Потратил немало времени на одни только эксперименты и сравнение файлов vold.fstab, mounts, с разных устройств...
p.s.3. В следующей статье, я покажу, как избавиться от проблемы обновления базы данных при обновлении приложения вручную.

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

Согласитесь мало приятно при скачивании важного файла столкнутся с невозможностью его сохранения из за нехватки памяти. Столкнувшись с проблемой нехватки памяти многие задумываются о том, как заменить внутреннюю 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 класса, так как маленькие накопители не принесут желаемого результата.

Продолжая тему прошивки девайсов на чипсете Rockchip 2926, поговорим о издевательствах над планшетом авторства компании Prestigio, а именно про мультиридер с обозначением 5274 B. Девайс сей по внешнему виду и техническим характеристикам мало чем отличается от предыдущего героя дня, Enot E102, поэтому детального описания здесь вы не найдете. Как всегда у Prestigio, откровенно китайское происхождение аппарата мастерски облагораживается продуманной прошивкой - в ней нет ничего лишнего и все нужное на первое время работает «из коробки». То есть клиенты аськовконтактов, ридеры и видеоплееры есть и не требуют вдумчивой настройки после первого же включения. Планшеты на чипсете 2926 в последующие месяцы станут массовыми, заменяя в нише бюджетных девайсов на Андроид устаревшие компоненты, такие как Allwinner A13. Ограниченность дешевого устройства остается такой же, как и у остальных - 4 Гб памяти, варварски разделенной на две половины и карта памяти, работающая как склад медиаконтента, не задействованная для кэша приложений. Когда уже разработчики прошивок вспомнят, что карточки памяти стоят сейчас очень и очень дешево и ранние устремления обеспечить работу планшета без карты в этих условиях выглядят, по меньшей мере, анахронизмом. Почему бы не укомплектовывать девайсы хотя бы двухгиговыми картами, оставляя их в прошивке, как sdcard, а не кривое external_sd, не вынуждая пользователей искать способы исправить несправедливость нетрадиционными средствами?

Впрочем, тема лояльности к пользователям и повороту к ним лицом, а не седалищем обширна и здесь ей не место. Начинаем экзекуционные работы над ридером, делая его более удобным в повседневной жизни. Начнем с получения Root. Дабы это дело прошло в высшей степени успешно, скачивайте архив (https://www.dropbox.com/s/rhsvca9epfv53ld/ROOT_icood70pro.zip ), распаковывайте его на диск С, без русских символов в пути (так избегаем ошибок). В планшете ставим галочку «неизвестные источники», «отладка по юсб» и подключаем его к компьютеру. В распакованной папке находим Root.bat и запускаем его. Ждем перезагрузки планшета с появлением среди установленного разнообразия supersu. Это приложение нам надо запустить, согласиться на обновление бинарников и перезагрузить планшет еще раз. Все, права администратора имеются - теперь есть возможность редактировать системные файлы, убрать лишнее, добавить всякое. Если девайс у вас никак не хочет получить Root, есть способ 2. Уберите галочку отладка по юсб в настройках девайса. Установите PdaNet (http://pdanet.co/a/ ), выбирая установку драйверов other. Установите UnlockRoot (http://yadi.sk/d/awamSlwP2mpgQ ). Верните галочку на место. Запустите UnlockRoot и нажмите Root. После окончания его работы перезагрузите планшет и обновите SuperSu.

Если у вас есть карта памяти и вас не устраивает позиция разработчиков прошивки, надо отредактировать vold.fstab. Установите Root Explorer версии 2.21 или выше (предыдущие криво работают с 4.1.1). Быстренько соглашайтесь на запрос разрешить ему доступ куда угодно. Теперь скачайте модифицированный vold.fstab (http://yadi.sk/d/P-SKlRTG4t2Vu ), подменяющий карточку и раздел внутренней памяти, перенесите его на карту памяти. Переименуйте его, убрав единичку из названия. Через Root Explorer найдите этот файл, нажмите на него долгим тапом (нажатием, если кто не любит англицизмы) и нажмите скопировать. Теперь отыщите каталог etc. Над каталогом вы найдете кнопку mount RW. Нажмите на нее. Внизу окна программы нажмите «вставить» (paste). Планшет спросит, заменять ли файлик вашим кастомом. Соглашайтесь. Долгим нажатием на замененный файл вызовите подменю, где выберите «разрешения» (permission). Вы видите перед собой квадрат по три окошечка в ряд. Установите галочки точно так же, как на скриншоте и примените выбор. Осталось лишь выйти из программы, перезагрузить планшет и оставить его загружаться. В зависимости от типа и качества карты памяти (лучше всего класс 10 от нормального, а не нонейм производителя), планшет будет загружаться от 5 минут до получаса. Если все прошло хорошо, то вас ждет обновленный раздел «память», где карточка наконец-то видится, как Sdcard и ее видят приложения для переноса кэша и программ на microSD.

Установка рекавери CWM связана с большим риском убить загрузчик - постарайтесь не делать ее, если нет острого желания экспериментов или необходимости установить кастомную прошивку на основе 4.2.2. На момент написания текста таковой не обнаружено, поэтому в данный момент установка CWM на Prestigio MultiReader 5274 имеет лишь теоретическую пользу. Итак, скачайте CWM (). Его установка может быть сделана несколькими путями. Самый правильный и почти безопасный - переименовать архив в update.zip и положительно ответить на запрос планшета перезагрузиться. Теперь зайти в рекавери можно просто и элегантно, зажав кнопку увеличения звука и включения. Когда появится зеленый робот, отпустите кнопки, зажмите звук + и однократно нажмите кнопку включения. Появится известное почти всем меню рекавери CWM, где доступно все - от монтирования разделов до бекапов и прошивочного дзена. Удобно перезагружаться в рекавери и через приложение Goo Manager с маркета. Другие способы внедрить CWM на данный момент слишком часто окирпичивают аппарат и о них я рассказывать не буду. Достаточно сказать, что происходит установка через adb shell, что поможет вам поискать примерную инструкцию, как сие делается и винить в неработающем устройстве кого-то другого.

И последнее на сегодня. Если так случилось и в результате каких-то непредвиденных обстоятельств (например, установки рекавери CWM) или неправильного расположения звезд на небе планшет отказался работать, то постараемся вернуть его в мир живых перепрошивкой. Ввиду полной идентичности перепрошивочной инструкции с предыдущем пациентом, Enot E102, читайте об этом . Повторять ее не вижу резона, поскольку разница только в файле, который вы будете внедрять. Образ прошивки находится на официальном сайте (http://www.prestigio.com/catalogue/MultiReaders/MultiReader_5274/PER5274B#/product-support/firmware ). Там же есть и сама программа.

Помните, проводя всяческие перепрошивочные эксперименты, вы можете начисто лишиться гарантии и остаться без работающего девайса на Андроиде. Поэтому внимательность, внимательность и еще раз то же самое слово. На этой, полной оптимизма ноте, позвольте откланяться. Вскоре мы встретимся снова, обсуждая, ругая и перепрошивая что-то еще.