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

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

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

Ответы (1)

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