Почему / sdcard / превратился в / sdcard / 0 / с 4.2?

20

Я никогда не видел этого раньше, поэтому я предполагаю, что это произошло, когда я обновился до 4.2: я вполне уверен, что /sdcard/раньше я брал меня прямо на мою SDCard, но теперь, когда я иду по этому пути (например, в CWM recovery) ) Мне нужно идти /sdcard/0, там тоже /sdcard/legacyвнезапно стучится.

Что это за папки и почему они появились?

PzKpfw
источник

Ответы:

23

Это связано с многопользовательской функцией, включенной в JellyBean 4.2 (не 4.1). Чтобы обрабатывать отдельные учетные записи, части структуры каталогов пришлось изменить. /sdcard/legacyНапример, всегда указывает на каталог SD-карты текущего пользователя, вошедшего в систему.

В настоящее время я не могу найти документ, в котором я читаю детали, поэтому я не могу связать любой источник. Но, учитывая вышесказанное, легко догадаться, что /sdcard/0, скорее всего, владельцы устройств (или «первые пользователи» - «первый пользователь» всегда становился «владельцем устройства», только этот пользователь может создавать дополнительные учетные записи) sd карточка и тд. Я добавлю ссылку на источник, как только смогу ее найти.

РЕДАКТИРОВАТЬ: Одна из страниц, с которых я получил эту идею, является AndroidNext . 1droid дает другое объяснение, когда дело доходит до SD-карты:

С Android 4.2 Google представил несколько пользователей в качестве новой функции. Чтобы разместить несколько пользователей, Google теперь предоставляет каждому пользователю свою собственную папку для хранения. Если вы обновились до 4.2 с 4.1, то ПЗУ 4.2 будет искать определенный файл в / data, чтобы определить, нужно ли перенести все ваши файлы в новую многопользовательскую структуру данных. По умолчанию 4.2 переносит все / data / media в / data / media / 0.

Однако возникла проблема с пользовательскими восстановлениями. Пользовательское восстановление сохраняет папку / data / media во время сброса настроек. Когда вы сбросите настройки и снова загрузите ПЗУ 4.2, ПЗУ 4.2 снова перенесет все в / data / media. Он перенесет ваши файлы каждый раз при сбросе настроек. Эта множественная миграция привела к тому, что некоторые люди переместили свои файлы в / sdcard / 0 или даже / sdcard / 0/0 и т. Д.

Так что на самом деле это связано с новой многопользовательской функцией - так или иначе.

Иззи
источник
Вы джентльмен и ученый, отличный ответ. Ваша теория о том, что 0 является первым пользователем, также имеет смысл, так как у меня есть только один пользователь, и /sdcard/0это единственный «каталог номеров», который существует.
pzkpfw
Также имеет отношение к этому объяснение Дэна Моррилла о том, почему Android перешел с USB Mass Storage на доступ MTP для внутреннего хранилища, что касается проблемы «фальшивки» / sdcard / fodler androidpolice.com/2011/11/18/…
GAThrawn
Хотя я категорически не согласен с ним по вопросу «выбора файлов» (я уже писал эту статью в закладки). Мы здесь не в Купертино и не гномы. Нам не нужно ничего скрывать и сообщать пользователю, чего он действительно хочет (хотя он «может еще не знать»). Я предпочитаю варианты, какие бы настройки не были установлены. Сделайте это общим переключателем в конфигурации: «Да, я зрелый пользователь» / «Нет, мне скорее нравятся другие люди, принимающие решения за меня» ... Кроме этого: Хороший вопрос :)
Иззи
В Android6 (Marshmallo) / storage / emulated / legacy становится пустым (по крайней мере, на устройствах Nexus), где перед обновлением до Marshmallow он содержал то же самое, что и / storage / emulated / 0
Gili Nachum