Как работает функция «Форматировать как внутреннюю память» в Android 6.0+?

Как работает функция «Форматировать как внутреннюю память» в Android 6.0+? Смотрите скриншот ниже:

Скриншот
Скриншот (нажмите, чтобы увеличить)

Почему так происходит, что «этот USB-накопитель будет работать только на этом устройстве»? Это из-за формата раздела? Я пытался прочитать его в Windows, но формат файла RAW; это в формате EXT4, поэтому Windows не может его прочитать? Что произойдет, если я вставлю эту карту в другое устройство Android 6.0? Сможет ли другое устройство прочитать его?

Ответы (3)

Если вы используете эту функцию, ваша внешняя SD-карта заменяет внутреннюю память. В процессе он будет зашифрован. Вы больше не можете «просто размонтировать» карту, чтобы прочитать ее на любом другом устройстве (включая картридер, подключенный к вашему ПК), так как в этом случае файловая система будет нечитаема в последнем (из-за шифрования — что делается « для безопасности», поэтому вор не может просто извлечь карту, чтобы обойти блокировку экрана вашего устройства и получить доступ к вашим данным).


Справка: Android 6.0 может рассматривать SD-карты как внутреннюю память… за определенную плату

Выберите внутреннюю память, и карта microSD будет переформатирована и зашифрована. После этого карту можно будет использовать только как внутреннюю память. Если вы попытаетесь извлечь карту и прочитать ее на компьютере, это не сработает. Все данные на карте также будут стерты, поэтому вы можете сначала сделать резервную копию чего-либо важного. Android предоставляет возможность перенести его, но ранние отчеты предполагают, что это ненадежно.

[…]

Вы по-прежнему можете установить приложения либо в настоящую внутреннюю память, либо на карту microSD, которая была отформатирована так, чтобы вести себя как внутренняя память. Но если у вас есть телефон с 8 ГБ памяти и картой microSD на 32 ГБ, у вас будет только 32 ГБ места для музыки, фильмов, игр или других файлов, а не 40 ГБ.


Ссылка: Adoptable Storage: скрытая функция Android Marshmallow, которую ваш телефон, вероятно, не может использовать :

Обратите внимание, что пространство увеличивается не на размер SD-карты, а на размер SD-карты. Вы в основном заменяете свое внутреннее хранилище (обычно это eMMC, что довольно быстро) на SD-карту (которая обычно медленнее, чем встроенный чип хранения). Вы будете обменивать скорость на мощность. В некоторых случаях это честная сделка.

Есть еще один интересный момент: если немного поработать, доступное хранилище выходит за рамки только карт microsd. Технически вы можете установить любое устройство USB OTG в качестве приемлемого хранилища. Теоретически это позволит вам подключить жесткий диск емкостью 1 ТБ через USB OTG. Конечно, вы никогда не сможете извлечь этот жесткий диск, поэтому возможности его использования очень ограничены, но очень интересны.

Если вы заинтересованы в том, чтобы «любое» запоминающее устройство, подключенное через USB OTG, стало пригодным для использования, вот команда, которую вам нужно знать. Мы не пробовали это, так что действуйте на свой страх и риск.

   adb shell sm set-force-adoptable true

Где AndroidCentral в Inside Marshmallow: Adoptable storage продолжается:

   adb shell sm set-force-adoptable true

Но вы, вероятно, не должны.

Как только запоминающее устройство используется, оно становится частью системы и больше не может быть съемным. Конечно, вы можете физически удалить его, но вам будет предложено вернуть его, когда приложения и службы будут аварийно завершать работу на вашем телефоне или планшете. Она принята — принята и любима системой и сделана частью целого.

Там есть интересный комментарий :

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

Плюс , чтобы подчеркнуть то, что я написал о :

Вы можете удалить и переформатировать карту, когда захотите, но это заставит вас сбросить телефон до заводских настроек.

Плюс :

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


Согласно совету Android 6.0 Marshmallow: «Примите» карту MicroSD в качестве внутреннего хранилища [Видео] , есть «обратный путь»:

К счастью, это не совсем постоянно. Если вы решите, что хотите использовать его только для хранения мультимедиа, вы можете изменить его обратно, выбрав «Настройки»> «Хранилище и USB», затем выбрав карту, нажав в правом верхнем меню, а затем выберите «Форматировать как портативный».

Но читайте между строк: форматирование означает, что все данные на нем будут стерты. Поэтому, если вы хотите это сделать, вам необходимо заранее защитить свои данные. Здесь нет простого «USB-кардридера», вам придется копировать все через USB или сеть. 1 И если карта сломается, никак не использовать картридер и какой-нибудь софт для восстановления, чтобы спасти хотя бы ее часть; шифрование делает это невозможным. Если он сломан, он, скорее всего, больше не будет монтироваться на устройстве, поэтому все, что вы не создали резервную копию в другом месте, «уйдет навсегда».


Пока карта «хорошая», есть интересный указатель, найденный в расшифровке принятого хранилища Android M (выделено мной):

Android M позволяет использовать адаптивное хранилище, которое реализовано аналогично внутреннему хранилищу FDE — с использованием dm-crypt со статическим 128-битным ключом AES для каждого тома, хранящимся в формате /data/misc/vold/. Как только ключ извлечен из устройства, принятое хранилище может быть смонтировано и прочитано/записано на любой машине Linux. Приемлемое шифрование хранилища выполняется чисто программно (по крайней мере, в текущей предварительной сборке), поэтому его производительность, вероятно, сравнима с зашифрованным внутренним хранилищем на устройствах, которые не поддерживают FDE с аппаратным ускорением.


Дальнейшие чтения:


1 В разделе Хранилище › Внутреннее хранилище вы должны найти «мигрировать данные», которые переместят ваши данные обратно во внутреннее хранилище, если у вас там осталось достаточно места. (спасибо Барлейману за указание на это)

Спасибо. Кажется немного странным, что обе файловые системы не могут быть прочитаны? Что произойдет, если ext SD будет поврежден?
@beeshyams тогда поздравляю — и молитесь, чтобы у вас была достойная резервная копия: сброс до заводских настроек, установка новой карты, восстановление. Угадайте, почему я никогда не использовал эту «функцию». И вы забыли еще один вопрос: что, если ваша карта на 16 ГБ заполнится, и вы захотите заменить ее на карту на 32 ГБ или 64 ГБ? Подсказка: то же самое… // Дополнительная литература: Android 6.0 может рассматривать SD-карты как внутреннюю память… за определенную плату
@beeshyams Смотрите мое обновление для более подробной информации :)
+1. Образовательная и, кажется, сумасшедшая идея использовать его, кроме как в более ранних версиях. Добавил в закладки для справки
Я тоже, @beeshyams — и добро пожаловать в нашу новую вики-тег для хранения тегов :)
+1. Очень подробное объяснение включения части мастер-ключа. Еще одна любопытная вещь, скажем, если я хочу обновить SD 16 ГБ до SD 32 ГБ, если у меня есть резервная копия главного ключа, я смогу заменить его, а затем восстановить главный ключ, чтобы он работал без сброса настроек?
Сомневаюсь, что это так работает. Это скорее: 1) сделать резервную копию всей SD-карты (может потребоваться рут для некоторых скрытых частей), затем 2) отформатировать ее обратно во внешнюю, 3) заменить и, при желании, «принять» ее снова, 4) восстановить. Как только вы подключите другую карту, Android либо попросит принять ее снова (новое шифрование), либо вообще откажется от нее (так как ему нужна принятая). Я не пробовал это (я не настолько сумасшедший), поэтому я не могу точно сказать, какой это будет.
Значит, «настоящая» внутренняя память становится полностью потраченной впустую? Или его добавляют /systemили что-то в этом роде?
@MatthewRead Насколько я понял, скорее первое. Он определенно не добавляется /system(или не переливается в любой другой раздел), а также не «заменяется местами» (поэтому его можно рассматривать как «внешнее хранилище»). Даже трудно получить доступ вообще из того, что я читал. Однако не могу говорить о своем собственном опыте: у меня нет MM, а если бы у меня был, я бы определенно не использовал адаптивное хранилище. Но это я и мой вариант использования, для меня это просто не имело бы смысла: больше минусов, не осталось плюсов (у меня нет «огромных приложений» и т. д.).
Стоит отметить, что извлечение SD-карты на самом деле не требует сброса настроек. Android вроде умный, и вы в основном теряете доступ к данным на карте. Приложения, которые были полностью на карте, больше нигде в системе не отображаются. Для приложений, которые все еще были установлены во внутренней памяти (система и некоторые приложения, установленные пользователем) и данные которых хранились в принятой памяти, вы будете получать сообщения об ошибках и сбои приложений.
@Izzy: Мой опыт прямо противоречит вашему утверждению о том, что «настоящая» внутренняя память «тратится впустую», когда используется внешняя SD-карта. На моем телефоне доступно 15,69 ГБ (используется 14,96 ГБ из 30,66 ГБ). 14,69 ГБ = 6,85 ГБ (внутренняя) + 2,80 ГБ (адаптированная). Это также не согласуется с тем, что я узнал из этого исчерпывающего поста Reddit об адаптируемом хранилище.
@MilindR Я написал это, когда эта функция стала доступна в MM около 2 лет назад (и этот Reddit был написан около 1 года назад). С более поздними обновлениями/версиями Android все может быть по-другому — и, судя по отзывам, которые я получил за последние несколько недель, это определенно так. Пожалуйста, напишите более актуальный ответ и отправьте мне пинг, чтобы обновить мой; поскольку я сам не использую адаптивное хранилище (и не планирую), я не чувствую себя достаточно квалифицированным :)

Второй ответ, чтобы некоторые моменты были более доступными.

  1. Да, внутренняя память по-прежнему доступна, по крайней мере, для Android. После того, как вы выполнили «перенос данных» на внешнее хранилище, все, что можно переместить, отправляется на SD-карту, но некоторые вещи все еще остаются на внутреннем. На Galaxy S5 вы можете найти их в /data/app/
  2. Вы можете обратить процесс вспять, открыв «внутреннее хранилище» в настройках хранилища и «перенести данные», которые скопируют все обратно во внутренний nvram.
  3. Если (когда) у вас недостаточно места, чтобы переместить все, вы все равно можете сделать это сложным путем, перейдя к информации о приложении и нажав кнопку изменения (местоположение).

Бекап Титаниум восстанавливает все во внутреннюю память. Поскольку в Galaxy S5, по крайней мере, заявленное доступное хранилище неверно, он заполнит его сразу. В этот момент вы начинаете получать постоянные всплывающие окна из-за аварийных приложений, и вам нужно проложить себе путь к информации о приложении для какого-то большого приложения и либо удалить его, либо переместить во внешнее, чтобы восстановить контроль.

Существует способ пакетного перемещения приложений между внутренним и внешним, apps2sd все в одном . Обработка файлов немного медленная, но это автоматический процесс.

Хорошо, вот что я хочу знать. Как начать использовать внешнюю SD-карту вместо внутренней памяти , ничего не перемещая ? Я понимаю, что мои внутренние данные будут недоступны до тех пор, пока я не отключу заимствованное хранилище, и меня это устраивает , но заимствованное хранилище меньше моего внутреннего хранилища (даже только то, что находится во внутреннем хранилище), поэтому я не могу ничего перемещать. Что я вижу, так это то, что Android добавил в 2 раза больше места на внешнем устройстве к общему доступному, но затем утверждает, что оно на 100% используется «Системой», что делает его фактически недоступным!

На Reddit есть отличный пост . Давайте раз и навсегда проясним путаницу с хранилищем в Android, в том числе с адаптивным хранилищем в Marshmallow.

Но, насколько я понимаю, камнем преткновения по-прежнему остается то, что разработчики по-прежнему контролируют, можно ли перенести их приложение на SD, в данном случае на расширенное внутреннее хранилище. Таким образом, вы все еще можете столкнуться с ограничением встроенной памяти телефона. По крайней мере, я могу выделить все свободное пространство для раздела /data , переразбив его (есть более удобные файлы .pit для устройства Samsung), так как мне не нужен раздел /media , поскольку, насколько я понимаю, Android переместится все пользовательские данные, картинки, офлайн-файлы стриминговых сервисов и т. д. на встроенную SD-карту; подтвердите или исправьте.

Раздела /media НЕТ: «поддельная» папка /SDCard/, в которой хранятся данные, которые вы можете просматривать с компьютера через USB-соединение с телефоном, представляет собой всего лишь один каталог в /data, обычно /data/media/0 . Эта папка перемещается на принятую SD-карту. Освобожденное место в /data автоматически становится доступным для других приложений.