Програма для зміни місцями внутрішньої та карти пам'яті. Як замінити внутрішню пам'ять андроїд на карту пам'яті

Відразу зазначу, що мова піде не про програми типу 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 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, будуть вказувати на зовнішню карту.

Як на “Андроїді” поміняти місцями пам'ять і навіщо це взагалі потрібно? Чи варто взагалі займатися подібними маніпуляціями і чи здатні вони завдати нашому пристрою непоправної шкоди? Подібні питання нерідко цікавлять людей, у підпорядкуванні яких виявився апарат із малою кількістю вбудованої пам'яті. Якщо ваш смартфон має відповідний об'єм, що дорівнює, наприклад, чотирьом гігабайтам, то ви знаєте, що використання такого пристрою є не що інше, як біль. Бо завантажити на нього достатню кількість мультимедіа файлів дуже проблематично. Бо як на “Андроїді” поміняти місцями пам'ять із внутрішньої на зовнішню?

Введення у проблему

Не слід думати, до речі, що такою проблемою, як малий обсяг вбудованої пам'яті, страждає лише операційна система “Андроїд”. Вона є і на "Айосі". Ці дві системи постійно конкурують одна з одною. Зрідка в єдиноборство втручається і "Віндовс Фоун", але вона незабаром виявляється викинутою за татами. До чого стосується тема IOS? Є факти, які незмінно доводять “оголення” цієї операційної системиперед користувачами. Спочатку код був загадкою. Проте подібна тенденція має місце. А ось операційна система "Андроїд", розроблена фахівцями компанії "Гугл", в даний час стає з кожним оновленням все більш закритою для потенційних розробників. Саме це і напружує людей, які настільки звикли до цієї операційної системи.

Навіщо потрібно знати відповідь на питання про те, як на “Андроїді” поміняти місцями пам'ять?

В даний час ОС, про яку ми говоримо, не дає користувачам можливість встановлювати додатки з відповідним забезпеченням - так званим кешем - на зовнішній накопичувач пам'яті. У нашому випадку, нехай це буде картка пам'яті стандарту MicroSD. Напевно, власники пристроїв з об'ємом 32 гігабайти і вище посміхнуться, але що робити людям, які мають у своєму розпорядженні від 4 до 8 ГБ, частина яких (зауважте це!) йде на утримання операційної системи? Оптимальним виходом із цієї ситуації стає лише вчинення певних маніпуляцій. І ось тут як ніколи важливо знати відповідь на питання про те, як на “Андроїді” поміняти місцями пам'ять. Власне, зробити це не складно. Однак потрібна гранична увага і, до речі, прямі руки. Якщо ви маєте ці параметри, то ми перейдемо до розгляду сенсу операції, щоб зрозуміти, що і для чого виконуватиметься.

Як на “Андроїді” 5 змінити пам'ять місцями? Що робити з іншими версіями?

З ситуації, що у нашому розпорядженні для розташування мультимедіа контингенту знаходиться всього лише парочка гігабайт, є вихід. Він полягає, по-перше, у придбанні зовнішнього А, по-друге, у програмній заміні певного коду, який зможе переконати наш пристрій у тому, що внутрішня зовнішня. Ну і, звичайно ж, навпаки. Таким чином, смартфон сприйматиме MicroSD-карту як внутрішню плату. Хотілося б відзначити, що питання про те, як поміняти карти пам'яті подекуди на “Андроїд” звучить докорінно некоректно, оскільки в цьому процесі кілька зовнішніх накопичувачів брати участь не можуть.

Що потрібне для заміни?

Незалежно від того, яка версія операційної системи у вас встановлена ​​і пристрій якого виробника у вас є, нам знадобиться однаковий набір утиліт. Це програми під назвою і Total Commander(яку знає безліч користувачів). Додатково потрібно отримання апарату.

Процес заміни

Для того, щоб започаткувати операцію, відкриваємо програму Root Explorer. Переміщуємось за адресою /system/etc. Там потрібно знайти файл, який називається vold.fstab. У ньому слід знайти рядки та параметри, які відповідають за точки монтування зовнішньої та внутрішньої пам'яті. Називаються вони відповідно так: SDcard і extsd. Після цього потрібно буде параметри поміняти місцями. На цьому активну фазу операції буде завершено. Не забудьте зробити резервні копіїфайлів, і пам'ятайте, що подібні операції користувачем виконуються на свій страх та ризик.

Можливості девайса можна серйозно розширити, якщо замінити внутрішню пам'ять Androidна картку пам'яті. Це дозволить встановити на планшет або інший гаджет набагато більше додатківАле основною вимогою для виконання даного апдейту є наявність root-прав на пристрої. Розглянемо способи, що дозволяють використовувати SD-карту як системної пам'ятіапарату, а також пов'язані з цим умови.

Ризики та умови заміни внутрішньої пам'яті гаджета на SD-карту

Перед повторенням описаних нижче дій користувач має врахувати кілька важливих моментів:

  1. Термін служби SD-карти сильно скоротиться внаслідок частого повторення циклів читання/запису під час запуску програм.
  2. Швидкість роботи гаджета може помітно впасти, якщо використовувати карту MicroSDнизький клас.
  3. При допущенні помилки під час редагування системного файлутелефон може наступного разу не завантажитися - доведеться перепрошувати його.

Загалом процедура (особливо для недосвідчених користувачів) є досить ризикованою, тому є сенс проводити її виключно для старих гаджетів з малою кількістю власної пам'яті.

Використання утиліти Root Browser та редагування файлу vold.fstab

Щоб поміняти місцями пам'ять, з Google Playпотрібно встановити Root Browser.

Повторимо, що повноцінно працювати з ним можна лише на рутованих девайсах. Після запуску вищезгаданої програми:


У Андроїд sdcardпозначає внутрішню пам'ять, а extsd – зовнішню, тобто SD-карту. Заміною цих рядків ми практично поміняли місцями ці види пам'яті. У деяких системах ці шматки коду можуть виглядати інакше, наприклад:

Замінити їх потрібно так:

Після виконання описаної процедури перезавантажте гаджет. Перед цим обов'язково перевірте відсутність помилок у зміненому коді, щоб надалі не виникла потреба у перепрошивці.

Другий спосіб збільшення пам'яті за допомогою Link2SD

Додаток доступний у Play Marketта працює тільки на девайсах з root-правами. Цей файловий менеджер не підміняє фізично внутрішню пам'ять пристрою зовнішнім накопичувачемАле він здатний переносити будь-які утиліти на SD-карту, значно заощаджуючи ресурси гаджета.

Особливість додатка, що розглядається в тому, що саму MicroSD доведеться розбити і належним чином відформатувати. Тому скопіюйте з вашої картки на комп'ютер все цінне і починайте поділ накопичувача на розділи.

Розподіл картки девайсу на розділи за наявності кастомного Recovery

Кожен пристрій на Android має режим відновлення, але описаний нижче спосіб підійде тільки для девайсів не зі стандартним, а з . Якщо ви ніколи не чули про CWM, переходьте до другого варіанта розбиття накопичувача. Далі розповімо, як вирішити поставлене завдання, якщо у вашому режимі відновлення пристрою є пункт Partition SD Card:

Розбиття MicroSD-картки через комп'ютер

Підключіть картку до лептопа або комп'ютера. Для цього можна використовувати картридер або інше обладнання, головне, визначатися воно має як накопичувач, а не медіапристрій MTP. Далі:


Відразу зазначу, що мова піде не про програми типу 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 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-картуяк основна пам'ять на їх Android-пристрої. У даному матеріалія розповім, як SD-карту зробити основною пам'яттю на гаджетах Android, і які способи нам у цьому допоможуть.

Розбираємо, як 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. Використовуємо налаштування ОС Android 6.0 і вище

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