О новом варианте использования внешней MicroSD В Android 6

О новом варианте использования внешней MicroSD.

ПРУФ - https://4pda.ru/forum/index.php?showtopic=710549&view=findpost&p=49177899

Что это такое, зачем нужно, как включается и как отключается.

Если вы используете в телефоне MicroSD карту то при первом запуске прошивки на основе Android M (6.x) вы наверняка заметили в шторке уведомление о том, что к устройству подключена MicroSD карта. На уведомлении две кнопки - "настроить" и "извлечь". С "извлечь" всё понятно, но как её можно "настроить"?

#

Уменьшено на 69%

720 x 1280 (533,66 КБ)

#

Важная информация

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

/data/misc/vold/expand_********.key

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

В дальнейшем после вайпа или установки другой прошивки вы сможете вставить этот файл обратно в папку /data/misc/vold и выставить ему права 644 (-rw-r--r--). Схематично такие права должны выглядеть так:

[X] [X] [ ]

[X] [ ] [ ]

[X] [ ] [ ]

После чего перезагрузить телефон. Карта должна прочитаться.

Спасибо за эту информацию говорим

WErt(WErt)

#

Теория, описание, сравнение, скриншоты

#

Введение

Варианта на выбор всего два - портативный носитель (как раньше) и внутренняя память (что-то новенькое). Выбрав вариант портативного накопителя всё будет работать "привычно" для вас, программа настройки карты просто укажет что вы можете хранить на своей карте свои данные, как делали это раньше - на андроиде версий с 4.0 по 5.1.

А вот вариант со "внутренней памятью" - это не совсем ясная новинка. Вот, ради эксперимента, я выбрал вариант внутренней памяти:

#

Уменьшено на 69%

720 x 1280 (166,56 КБ)

Уменьшено на 69%

720 x 1280 (149,89 КБ)

Уменьшено на 69%

720 x 1280 (127,05 КБ)

Уменьшено на 69%

720 x 1280 (164,1 КБ)

Уменьшено на 69%

720 x 1280 (145,52 КБ)

Уменьшено на 69%

720 x 1280 (147,63 КБ)

Что я получил? В чём разница?

Используя карту как внутреннюю память я почти полностью заменил ей настоящую внутреннюю память телефона, в которую по умолчанию ставятся приложения, хранятся их файлы и настройки, качаются кэши игр. То есть телефон стал искренне верить что у меня не 16, а 32 гигабайта внутренней памяти.

В чём преимущества данного способа? Если у вас скоростная (10 класса) MicroSD карта объёмом больше внутренней памяти (от 32 гб, если вы владелец 16 гб версии смартфона) - вы получили не менее скоростное, чем обычная память устройства, внутреннее хранилище высокого объёма, в которое можно закачать ещё больше

кэшэй для игр

полезных приложений, ведь использовать для этого MicroSD в её привычном виде было нельзя. Так же в плюсы можно записать что в этом формате MicroSD принудительно шифруется и даже потеряв её ваши данные никто не сможет прочитать. (даже вы, если с телефоном что-то случится, но это скорее минус. Чтобы такого не случилось - ознакомьтесь со сполером "Важная информация")

В чём слабые стороны? Да их целый вагон. Эту карточку больше нельзя извлекать из телефона. Извлекая её вы ломаете работу установленных на неё приложений (или просто хранящих на ней свои файлы), да ещё и с этого момента практически ничего не сможет прочесть её отдельно от телефона. А если она класса ниже 10 - телефон ваш начнёт работать заметно медленнее.

Дополнительный "антибонус" - гляньте на вашу старую-добрую внутреннюю...

#

Уменьшено на 69%

720 x 1280 (264,82 КБ)

Стоп. Куда она делась?

#

Детальное рассмотрение

Для начала стоит понять разницу. Что мы имеем при портативном хранилище (как раньше) и что имеем с применением новой функции.

#

Скриншоты "по парам" для сравнения

Сначала идёт "было", потом "стало".

ES FM:

Уменьшено на 69%

720 x 1280 (271,42 КБ)

Уменьшено на 69%

720 x 1280 (264,82 КБ)

MTP подключение (используется Windows 10):

Уменьшено на 23%

515 x 66 (3,71 КБ)

Уменьшено на 28%

550 x 65 (3,12 КБ)

В настройках:

Уменьшено на 69%

720 x 1280 (60,67 КБ)

Уменьшено на 69%

720 x 1280 (58,24 КБ)

Дальше вещи посложнее, для более понимающих людей.

Управление дисками Windows:

Рекавери не понимает как работать с такой карточкой. MTP из-под TWRP:

Уменьшено на 23%

518 x 64 (3,95 КБ)

Уменьшено на 23%

518 x 64 (2,94 КБ)

Информация о разделах используя parted:

Уменьшено на 69%

720 x 1280 (92,18 КБ)

Уменьшено на 69%

720 x 1280 (95,36 КБ)

Рекавери полностью теряет контроль над этой карточкой. Оно не понимает как с ней работать, таких разделов и точек монтирования в нем не прописано. А потому в разделе Mount полностью исчезла возможность монтировать MicroSD через USB, да и в верхнем списке она хоть и присутствует со странным именем, но монтироваться отказывается (нет информации о такой точке в fstab, я так понимаю)

#

Уменьшено на 69%

720 x 1280 (55,13 КБ)

Подключив данную карточку через кард ридер к ноутбуку жены я получил:

#

Отдельного внимания стоит то, что форматировать предлагается раздел размером всего в 16 мегабайт. Это потому что Windows не умеет работать со съёмными накопителями, разбитыми на несколько разделов и при работе с карточкой видит только первый из них.

Так кто и куда угнал мою внутренюю память?

Она осталась на месте, просто теперь вся целиком отдана разделу /data, частью которого она раньше и являлась (/data/media/0 - знакомый многим из нас путь). Вы по-прежнему можете его использовать, просто это несколько затруднено и не так очевидно.

#

Уменьшено на 69%

720 x 1280 (318,87 КБ)

#

Итоговое сравнение

Чтобы понять как именно меняется память при активации данной функции проще всего применить построение графиков. Ниже я составил три отдельных графика. Первый - прошлая флагманская модель - SGS2. Второй - классическое применение разделов SGS3. Третий - с включенной новой функцией. график составлялся из расчёта 16 гб памяти в телефоне и 32 гб MicroSD. Числа взяты очень и очень примерные - лишь бы показать суть.

#

Уменьшено на 74%

1500 x 1400 (37,92 КБ)

Синий цвет (которого совсем чуть-чуть) - это крайне важные для работы телефона разделы. В них хранится загрузчик, рекавери, модем, EFS и подобное.

Рыжий цвет - это раздел /system для самой прошивки.

Жёлтый цвет - это /data, в нем хранятся приложения и их настройки.

Зеленый цвет - это /sdcard, встроенная память для данных пользователя (фото и видео, кэши игр, документы, музыка)

Красно-коричневый - это внешняя карта.

Что мы видим тут?

У SGS2 есть отдельные /data и /sdcard. Опыт показал что это плохое решение - зачастую у человека заканчивалась /data при пустом /sdcard (или наоборот) и приложения переставали устанавливаться и обновляться с ошибкой "память заполнена".

У старой, обычной версии памяти SGS3 отсутсвует раздел /sdcard. Его функцию берет на себя папка /data/media внутри раздела /data. Ради этого инженерам Google пришлось отказаться от USB в пользу MTP, но это было верное решение - это исключило проблему с памятью как у SGS2, которую я описал выше.

При включении же новой функции внешняя MicroSD начинает выполнять роль как бы отдельного раздела /sdcard и сама суть деления памяти SGS3 становится ровно-ровно как была в SGS2, это хорошо видно по графикам. Отличие только в том, что у SGS3 в таком случае в несколько раз больше объём памяти.

#

Выводы

#

Инструкция по включению и отключению под Android 6.X

Если вы при первом запуске выбрали не то, что хотели, а позже передумали (ну или не важно по каким ещё причинам вы захотели активировать или отключить данную опцию) - вам помогут следующие шаги:

Включение функции:

1) Открываем настройки.

2) Заходим в раздел "Хранилище и USB-накопители"

3) Жмём на карту памяти (она будет снизу. Сверху - обычная внутренняя память. Нажать надо по центру или слева, но не справа строки - там извлечение)

4) Жмём три точки в правом верхнем углу

5) Выбираем "настройки"

6) Жмём "внутренняя память"

7) Следуем указаниям мастера

(Обратите внимание на предупреждение о форматировании - прежде, чем продолжить, вам нужно будет забрать все необходимые данные с MicroSD на какое-то иное хранилище)

#

То же, но в картинках

Отключение:

1) Идём по тому же пути, который указан в пунктах 1-4 инструкции выше, но после нажатия на три точки выбираем не "настройки", а "портативное хранилище"

2) Следуем указаниям мастера

(Обратите внимание на предупреждение о форматировании - заберите с карты все необходимые данные)

#

Исправление бага "остуствующей /sdcard"

Если вы включили использование MicroSD как внутреннего хранилища, а затем отформатировали MicroSD из-под рекавери или используя ПК (или просто вытащив её и поставив другую карту) - вы могли напороться на непродумку инженеров Google. Точки монтирования будут пытаться работать с флешкой как с внутренней памятью, а её формат перестанет для этого подходить и с памятью начнётся большая-большая беда. Чтобы вылечить это:

1) Вставляем любую MicroSD в телефон (учтите что данные на ней будут уничтожены, сделайте копию всего необходимого)

2) Идём в настройки и включаем опцию использования флешки как внутренней памяти (инструкции в спойлере выше). На предложение перенести данные следует ответить отказом.

3) Снова идём в настройки и отключаем эту опцию (инструкции в спойлере выше).

4) Перезагружаем устройство

После этого точки монтирования должны придти в норму и память перестанет вытворять сферические действия в вакууме.

#

Возврат MicroSD к норме без использования Android 6.X

Если случилось так, что вы поменяли прошивку на версию Android ниже 6.X или вообще потеряли доступ к телефону и карта перестала читаться - для её восстановления придётся выполнить пару не совсем тривиальных действий.

Сразу скажу - при активации данной функции

MicroSD была отформатирована с применением шифрования, а потому ваши данные скорее всего уже не вернуть, если не был сделан бэкап ключа шифрования (читаем спойлер "Важная информация")

, есть варианты только не особо заморачиваясь восстановить работоспособность карточки не задумываясь о данных.

Внимание. Это в целом не должно быть опасно, но применяете данный скрипт вы на свой страх и риск.

Я предлагаю вам самый простой метод лично моего приготовления. Просто применяем данный файл из-под любого кастомного рекавери:

Hellsingoff_SD_reset.zip

( 177,56 КБ )

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

Естественно, нужно чтобы требующая сброс MicroSD карта была в этот момент вставлена в телефон. Сам скрипт внутри файла:

#!/sbin/sh

FD=$2

ZIP=$3

ui_print() {

echo -n -e "ui_print $1\n" > /proc/self/fd/$FD

echo -n -e "ui_print\n" > /proc/self/fd/$FD

}

ui_print " "

ui_print " All data on MicroSD will be removed! "

ui_print " If you wanna cancel this operation "

ui_print " you have a 10 sec to remove the battery "

ui_print " "

sleep 10

ui_print "Step 1/3: Preparing parted."

mkdir /tmp/repart_files # For safe using PATH.

unzip $ZIP -d /tmp/repart_files

chmod +x /tmp/repart_files/parted

PATH=$PATH:/tmp/repart_files/

ui_print "Step 2/3: Unmounting."

umount -l /dev/block/mmcblk1p1

umount -l /dev/block/mmcblk1p2

ui_print "Step 3/3: Reset."

parted -s /dev/block/mmcblk1 mklabel msdos

parted /dev/block/mmcblk1 mkpartfs primary fat32 0% 100%

ui_print "Done! Reboot recovery."

sleep 5

reboot recovery

#

Альтернативные (плохо работающие или сложные) варианты

Вот и всё.

Если будут замечания или пожелания - прошу писать в QMS, подумаем над изменениями.

#

Мои инструкции для SGS3

О переходе на F2FS и переразметке внутренней памяти

О новом варианте использования внешней MicroSD. (Вы здесь)

Изменение максимальной громкости

CM13 Temasek FAQ

Исправление медленной зарядки

Перенос папки кэшей игр на внешнюю карту