Віртуальна СД карта для андроїд. Завантажити AParted (Sd Card Partition) на Андроїд. Додаток для створення розділів та управління ними на SD карті на Android. Підготовка до розбивання

Необхідність розбивки карти пам'яті на кілька розділів зазвичай виникає, коли в телефоні/планшеті на Android мало вбудованої пам'яті для встановлення програм. Виконавши таку операцію, можна звільнити місце на телефоні, наприклад, шляхом другого розділу microSD карти. Раніше ми вже розповідали, як можна створити/об'єднати розділи на картці пам'яті засобами та .

Не завжди можна знайти рекавері для конкретного телефону/планшета, що підтримує розбивку карток пам'яті, тому в цій статті ми розповімо, як це зробити за допомогою програми для Android – AParted.

Цей додаток надає такі можливості (з офіційної документації):

  • Розбивка на розділи зовнішньої/внутрішньої пам'яті пристрою Android.
  • Форматування зовнішньої/внутрішньої пам'яті пристрою Android.
  • Видалення розділів.
  • Перевірка та виправлення помилок файлових систем.
  • Зміна розміру розділів.
  • Оновлення файлових систем.

У цій статті ми скористаємося лише першою з них.

Підготовка до розбивання

Перед розбивкою обов'язково зробіть резервну копію важливих для Вас даних (фото, відео тощо), оскільки всі файли будуть видалені з картки пам'яті під час розбивки.

Переконайтеся, що на Вашому телефоні є , без нього AParted не працюватиме.

Перед запуском програми необхідно вимкнути картку пам'яті в установках Android. Для цього перейдіть до "Параметри > Пам'ять", у розділі підключеної microSD карти натисніть "Безпечне вилучення" і підтвердіть дію.

Розмітка майбутніх розділів

Запустіть програму AParted, на вкладці "CREATE" Ви побачите два графічні уявлення карти пам'яті у вигляді прямокутників: нижній прямокутник з написом "Карта пам'яті SD таблиці розділів msdos" відображає поточну розмітку розділів, а верхній "Нові таблиці розділів msdos" – схему майбутніх розділів на картки microSD.

Натисніть кнопку "ADD", щоб додати перший розділ, і вкажіть повзунком його розмір. Цей розділ буде доступний телефону/планшету як зовнішня пам'ять під фотографії, музику тощо. Для більш точного розбивки натисніть на число з MB, у полі, що з'явилося, вкажіть точний розмір в мегабайтах і підтвердіть зміни, натиснувши "ОК". Залишіть галочку "Format" увімкненою та файлову систему "fat32" без змін.

Знову натисніть кнопку "ADD", щоб додати другий розділ на карті microSD, який у майбутньому слугуватиме розширенням системної пам'яті Android-пристрою. Виберіть повзунком все місце, що залишилося, галочку "Format" залиште увімкненою, натисніть на напис "fat32" і виберіть одну з наступних файлових систем: "ext2", "ext3" або "ext4".

А ось тут починається найцікавіше, бажано вибрати варіант "ext4", але існує низка причин, з яких Вам не вдасться створити розділ у даній файловій системі: ядро/прошивка системи Android, клас/виробник (якість) карти пам'яті та ін.

Тому експериментуйте, спробуйте спочатку створити розділ з "ext4", потім "ext3" та "ext2". Врешті-решт програма Link2SD підтримує всі перелічені вище файлові системи.

Після виконання операцій вище прямокутник з написом "Нові таблиці розділів msdos" має відобразити схему майбутніх розділів картки пам'яті.

Виконання розбивки

Щоб застосувати розмітку нових розділів до картки пам'яті, натисніть кнопку "APPLY". Програма AParted попередить Вас, що всі дані на знімному носії будуть стерті.

Далі буде відображено процес розбивки та форматування розділів картки пам'яті, після завершення якого на нижньому графіку "Картка пам'яті SD таблиці розділів msdos" відобразиться результат розбивки носія. Перейдіть до "Параметри > Пам'ять" телефону/планшета та у розділі зовнішньої пам'яті натисніть "Підключити SD-карту". Після підключення та аналізу microSD карти системою Android Ви побачите, що її пам'ять зменшилася до встановленого Вами розміру.

Якщо у статусі телефону з'явиться повідомлення, що SD-картка пошкоджена, перезавантажте Android, після перезавантаження картка пам'яті повинна автоматично підключитися.

Налаштування Link2SD

Встановіть та запустіть . Програма повинна автоматично визначити наявність другого розділу на картці пам'яті та надати запит на створення скрипта монтування. Позначте у списку файлову систему другого розділу, яку ви вказували при розбивці картки пам'яті в програмі AParted, підтвердіть запит і після виконання операції натисніть кнопку "Перезавантажити пристрій".

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

Dolphin може запустити data до virtual SD card named sd.raw. Залежно від того, він буде створений з розміром 128MB.

Віртуальна картка SD має важливе використання для homebrew apps на Dolphin. Project M і Mario Kart Wii custom tracks є два хороші приклади, як деякі homebrew apps можуть тільки працювати використовуючи файли збережені на SD card of the real hardware for which they were designed.

Contents

Creating a Virtual SD Card

Це є відповідь на створення одного з розміром на 1 ГБ для великої homebrew apps, для прикладу, Project M, і не більше 2 GB для кращої compatibility as there compatibility issues with some homebrew apps trying to run under SDHC card .

Command Line and Executable Files

WinImage є unreliable, тому що неухильно, це буде викликати невтішність і кілька інших unforeseeable проблем. ImDisk will be fine.

Quick guide for mounting and editing virtual SD card with the ImDisk Virtual Disk Driver:

  1. Right-click on sd.raw file then click "Mount as ImDisk Virtual Disk" from the context menu.
  2. Check box Removable media then hit "OK". Thededefined drive letter and everything else will do just fine.
    • Віртуальна SD-карта буде з'явитися в даний час як "Removable Disk", в якому природний Explorer window can read and write in there.
  3. Якщо ви можете скористатися віртуальною SD-картою, тільки не підтримуйте її правою кнопкою на "Removable Disk" then click "Unmount ImDisk Virtual Disk" from the context menu.
    • Віртуальна SD-картка повинна бути обмежена перед використанням з Dolphin.

Dolphin Setting

Go to Options > Configure... > Wii > and enable Insert SD Card.

Usage

With Homebrew App

Зовнішні файли використовуються для homebrew app must be stored within sd.raw and the homebrew app itself ( boot.elf or boot.dol) повинні залишатися поза ним для Dolphin to load. Project M, for example, will load from SD root \projectm\ and Dolphin will need to launch Project M через \apps\projectm\boot.elf, NOT in the virtual SD card. Для convenience's sake, it is ideal to have same copies paralleled між inside і outside of virtual SD card.

Тому, це можна запустити homebrew app з віртуальної SD-карти через homebrew exploits for Wii.

The Wii game launcher app буде тільки працювати, і якщо особлива Wii game is set as default ISO. З dolphin game list, Open context menu (right-click) on any Wii game and click Set as default ISO. Do this before loading homebrew app with Dolphin.

For Netplay

Netplay буде, ймовірно, замінити, якщо будь-який reads віртуальна SD-картка не є cloned, незважаючи на те, що вона була створена, і подібні файли/фолдер структури з його керуванням. To prevent that, sd.rawповинні бути зроблені з host"s computer to joiners" комп'ютери перед початком netplay. Якщо віртуальна SD-карта була використана в автономному режимі або онлайн з записаним блоком, MD5 checksum буде змінюватися ("Date Accessed" of the files are what's different in virtual SD card), але не буде спричинено desync.The SD card got to be coming from elsewhere or sujetod to files modified within to be "different".

Для Wii game launcher app, користувачів на кожній частині повинні мати ті ж самі копії homebrew app і гравець у своїй грі літопису, то набір гравців, як ISO, як mentioned в попередньому розділі.

Цей інструмент дозволяє створювати розділи та керувати ними на SD карті/USB диску телефону або планшета. Ви можете додати більше оперативної пам'яті пристрою, створивши розділ підкачки. Також можна відновлювати пошкодження файлової системи картки SD. Підтримує лише "основний" тип розділу.
Функції:

  • створення розділів;
  • видалення розділів;
  • відновлення ушкоджених файлових систем.

Підтримувані файлові системи:

  • FAT16, FAT32, EXT2, EXT3, EXT4, SWAP, NTFS (починаючи з версії MoalBoal).

Вимоги:

  • Root телефон;
  • наявність Busybox;
  • встановлення у внутрішню пам'ять;
  • перед початком роботи з програмою вимкнути SD карту.

Інструкція як створити розділи за допомогою програми

Найперше, перекинути з флешки всі цінні Вам файли на ПК, тобто як з флешки після цього все вилучиться.

- Відкриваємо програму

У розділі Create тиснемо двічі плюсик "+"

Перший розділ "Part 1" вибираємо Fat32, другий "Part 2" вибираємо потрібний ext2/3/4 або swap.
- Слайдером виставляємо розмір кожного розділу, галочка на "Format" має стояти.

Підтверджуємо "Ок"

Все готово.

Як повернути флешці повний обсяг
Якщо вирішили видалити другий розділ із флешкою ​​можна зробити так.
- Заходимо в налаштування телефону, "Пам'ять" та тиснемо "Витягнути SD-карту".
- Відкриваємо програму
- У розділі Create тиснемо один раз плюс "+"
- У "Part 1" вибираємо Fat32, слайдером виставляємо на повний обсяг флешки, галочка на "Format" має стояти.

Софт клавіша, тиснемо "застосувати зміни"

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

Отже, почнемо з теорії.

Термінологія

Google нам каже, що є такі поняття:
  1. Внутрішня ( internal) пам'ять - це частина вбудованої в телефон карти пам'яті. За умовчанням папка програми захищена від доступу інших програм (Using the Internal Storage).
  2. Зовнішня ( external) пам'ять - це загальне «зовнішнє сховище», тобто. це може бути як частина вбудованої пам'яті, так і пристрій, що видаляється. Зазвичай це частина вбудованої пам'яті, як пристрій, що видаляється, я бачив востаннє на андройді 2.2, де вбудована пам'ять була близько 2Гб, і пам'ять, що підключається, ставала зовнішньою (Using the External Storage).
  3. Вилучена ( removable) пам'ять - всі сховища, які можуть бути видалені з пристрою без хірургічних втручань.

До версії KitKat 4.4 API не надавало функціоналу для отримання шляхів зовнішньої пам'яті. Починаючи з цієї версії (API 19), з'явилася функція public abstract File getExternalFilesDirs(String type), яка повертає масив рядків із шляхами до внутрішньої та зовнішньої пам'яті. Але як бути з нашою SD Card, яка вставлена ​​в слот? Шлях до неї ми знову не можемо отримати.

Результати пошуку

Щоб відповісти на поставлене запитання, я звернувся до всезнаючого гугла. Але й він мені не дав чіткої відповіді. Було розглянуто безліч варіантів визначення від використання стандартних функцій, які ведуть до зовнішньої пам'яті, але нічого спільного з пристроями зберігання даних, що видаляються, вони не мають, до обробки правил монтування пристроїв (Android ж на ядрі Linux працює). В останніх випадках були використані "зашиті" шляхи до папки з примонтованими пристроями (у різних версіях ця директорія різна). Не слід забувати, що від версії до версії правила монтування змінюються.

Зрештою я вирішив об'єднати всі отримані знання і написав свій клас, який може нам повернути шляхи до зовнішніх і видалених пристроїв.

Опис коду

Було створено клас MountDevice, який містить шлях до пристрою, тип пристрою і якийсь хеш.
Типів пристроїв виділено два (внутрішню пам'ять я не став чіпати, оскільки доступ до неї можна отримати через API системи).

Public enum MountDeviceType ( EXTERNAL_SD_CARD, REMOVABLE_SD_CARD )
І було створено клас StorageHelper, який здійснює пошук доступних карт пам'яті.

У класі StorageHelper реалізовано два способи пошуку – через системне оточення ( Environment) та з використанням утиліти Linux mount, А точніше результату її виконання.

Спосіб перший - Environment
При роботі з оточенням я використовую стандартну функцію getExternalStorageDirectory() для отримання інформації про зовнішню пам'ять. Щоб отримати інформацію про пам'ять, що видаляється, я використовую змінну оточення " SECONDARY_STORAGE".

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

Функція fillDevicesEnvirement

String path = android.os.Environment.getExternalStorageDirectory() .getAbsolutePath(); if (!path.trim().isEmpty() && android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) ( testAndAdd(path, MountDeviceType.EXTERNAL_SD_CARD); ) // Отримуємо рем rawSecondaryStoragesStr = System.getenv("SECONDARY_STORAGE"); if (rawSecondaryStoragesStr != null && !rawSecondaryStoragesStr.isEmpty()) ( // All Secondary SD-CARDs splited in array final String rawSecondaryStorages = rawSecondaryStoragesStr .split(File.path (testAndAdd(rawSecondaryStorage, MountDeviceType.REMOVABLE_SD_CARD);))


Варіант рішення взято зі stackoverflow. Відповідь десь там унизу.
Спосіб другий - mount
Так як у мене довго не виходило змусити систему мені сказати шлях до пам'яті, що видаляється, я вирішив шукати в бік примонтованих пристроїв. У системі є файли конфігурації, які описують правила монтування зовнішніх пристроїв. Все б добре, але на Android версії 4.* до цього файлу простим смертним доступом немає, тому розглядати цей спосіб не буду.

Повернемося до утиліти mount. Під час запуску без параметрів команда повертає список змонтованих файлових систем. Пристрої, що видаляються, зазвичай формат файлової системи FAT, то будемо виділяти рядки, в яких є характеристика " fat". Зовнішня пам'ять характеризуватиметься параметром " fuse".

Примітка: при використанні такого способу не завжди коректно (швидше за все, я щось не врахував) визначаються типи змонтованих пристроїв. Різницю помічав на різних версіях Android. Тому цей спосіб можна використати як додатковий.

Функція fillDevicesProcess

try ( Runtime runtime = Runtime.getRuntime(); proc = runtime.exec("mount"); try ( is = proc.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); while ( (line = br.readLine()) != null) ( if (line.contains("secure")) continue; if (line.contains("asec")) continue; if (line.contains("fat") ) (// TF card String columns = line.split(" "); if (columns != null && columns.length > 1) ( testAndAdd(columns, MountDeviceType.REMOVABLE_SD_CARD); ) ) else if (line.contains(" fuse")) (// internal(External) // storage String columns = line.split(" "); if (columns != null && columns.length > 1) ( // mount = mount.concat(columns + " \n"); testAndAdd(columns, MountDeviceType.EXTERNAL_SD_CARD); ) ) ) ) finally (...))

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

Хто ще яким чином користується?

Теги: Додати теги

У деяких пристроях Android є слоти для карт пам'яті (зазвичай формату microSD). Якщо пристрій підтримує карти SD, ви можете:

  • збільшити обсяг пам'яті;
  • використовувати картку для роботи деяких функцій та програм.

Щоб дізнатися, чи є ваш пристрій слот для SD-карти, відвідайте сайт виробника .

Примітка.Деякі з цих дій можна виконати лише на пристроях з Android 6.0 та пізнішими версіями.

Як встановити SD-карту

Крок 1. Вставте картку SD.
  1. Уточніть, де знаходиться слот для картки SD.
  2. Вимкніть телефон.
  3. Вийміть лоток картки SD або зніміть задню кришку пристрою (залежно від моделі). При необхідності підніміть язичок, що утримує картку.
  4. Покладіть картку SD у слот. Якщо ви підняли утримуючий язичок, опустіть його.
  5. Вставте лоток SD-картки або задню кришку пристрою.
Крок 2. Увімкніть картку SD.
  1. Дочекайтеся появи повідомлення про карту SD.
  2. Натисніть Налаштувати.
  3. Виберіть тип сховища.
    • Знімний накопичувач:
      Карту можна переносити на інший пристрій разом із усіма файлами (наприклад, фотографіями та музикою). Програми на знімний накопичувач не можна переміщувати.
    • Внутрішня пам'ять:
      На карті можна зберігати програми та дані лише для цього пристрою. Якщо ви перемістите її на інший пристрій, всі дані будуть видалені.
  4. Щоб налаштувати картку SD, дотримуйтесь інструкцій на екрані.
  5. Після завершення натисніть Готово.

Як використовувати SD-карту

Як перемістити програми на карту SD

Якщо ви підключили картку як внутрішній пам'яті, можна перенести програми на неї.

Примітка.Не всі програми можна перенести картку SD.

Як перемістити файли на карту SD

Якщо ви встановили SD-карту як знімний накопичувач, то можете перенести на неї різні файли, наприклад музику та фотографії. Після цього їх можна видалити із внутрішньої пам'яті пристрою.

Крок 1. Скопіюйте файли на картку SD.

Крок 2. Видаліть файли із внутрішнього накопичувача.

Ви можете переглянути вміст SD-картки та дізнатися, скільки місця залишилося.

Якщо SD-карта використовується як внутрішній накопичувач

Якщо SD-карта використовується як знімний накопичувач

  1. Проведіть по екрану зверху вниз, щоб відкрити панель сповіщень.
  2. Під повідомленням про картку SD натисніть Відкрити.