Как открыть доступ к карте памяти на андроид 11

Обновлено: 06.07.2024

Обновления в Android 11: Scoped Storage и другие улучшения конфиденциальности

Все последние улучшения в Android на уровне ОС касаются защиты приложений и пользовательских данных, а также более упорядоченного предоставления доступа. Несмотря на преимущества изменений, они также предполагают дополнительную работу для разработчиков.

В целях повышения конфиденциальности пользователей Android 11 добавлены некоторые существенные изменения и ограничения. Как указано в превью поведенческих изменений, они состоят в следующем:

Принудительное использование хранилища с ограниченной областью видимости (Scoped storage): доступ к каталогам внешних хранилищ ограничен каталогом конкретного приложения и определенными типами носителей, созданных приложением.

Автоматический сброс разрешений: если пользователи не взаимодействовали с приложением в течение нескольких месяцев, система автоматически сбрасывает конфиденциальные разрешения приложения.

Фоновый доступ к местоположению: пользователи должны быть направлены в системные настройки, чтобы предоставить приложениям разрешение на фоновое определение местоположения.

Видимость пакета: когда приложение запрашивает список установленных приложений на устройстве, возвращенный список фильтруется.

Недавно я глубоко погрузился в концепцию Scoped storage, чтобы понять, чего ожидать в будущем, и соответственно подготовить свое Android-приложение к переменам.

Структура хранилища (до Android 10)

Прежде чем перейти к тому, что касается реализации, сначала разберемся, как было организовано хранилище данных до Android 10:


  • Частное хранилище (Private Storage): все приложения имеют собственный частный каталог во внутреннем хранилище, то есть Android/data/, невидимый для других приложений.
  • Общее хранилище (Shared Storage): остальная часть хранилища, помимо частных разделов, называлась общим хранилищем. Оно включает в себя все медиа- и немедийные файлы, сохраненные в системе, и приложение с разрешением на хранение может легко получить к ним доступ.

Проблемы с текущим состоянием структуры и доступа

Есть ли, на ваш взгляд, какие-то проблемы в структуре, которую мы рассмотрели выше? Не хотелось ли вам, чтобы Google что-нибудь здесь изменил?

Давайте подробнее остановимся на некоторых проблемах.

  • Допустим, у нас приложение для электронной коммерции, которому нужен доступ к хранилищу только для того, чтобы пользователь смог загрузить фото профиля. Значит, ему нужно предоставить доступ к определенному файлу или файловой системе. Другой пример: нам нужно загрузить или сохранить медиа-файл из чат-приложения, а для этого нужен доступ к одному медиа-файлу. Так зачем же предоставлять доступ к хранилищу целиком?
  • Может оказаться так, что конфиденциальные данные, такие как медицинские рецепты или банковские чеки, будут доступны всем приложениям, установленным на устройстве.
  • После удаления приложения нет возможности убедиться, что все связанные с ним данные и файлы полностью очищены.

Уверен, это должно заставить вас задуматься о безопасности приложений и данных, а также о конфиденциальности и организации. Не волнуйтесь, недавнее обновление Google для Android уже спешит на помощь.

Хранилище с ограниченной областью видимости

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

Песочница приложений, изолирующая приложения друг от друга, — это ключевая часть дизайна Android. Взяв за основу все тот же самый основополагающий принцип, в Android Q компания Google представила хранилище с ограниченной областью видимости.

Эти изменения первоначально планировалось применить к каждому приложению на телефоне под управлением Android 10 или более поздней версии, но из-за негативной реакции разработчиков Google изменил курс и потребовал использовать хранилище с ограниченной областью видимости только для приложений, ориентированных на Android API уровня 29, то есть Android 10. Но с Android 11 Scoped Storage вернулся, и на сей раз Google вряд ли передумает.

  • Улучшенная атрибуция: приложению будет предоставлен доступ к блокам хранения, которые содержат соответствующие данные приложения.

Посмотрите на структуру хранения данных в Android 10 и выше:


Частное хранилище остается без изменений, но общее хранилище дополнительно делится на коллекцию медиа и загрузок (немедийных файлов).

  • Уменьшение беспорядка в файлах: система свяжет хранилище с приложениями-владельцами, чтобы системе было легче находить файлы, относящиеся к приложению. Таким образом, при удалении приложения все связанные с ним данные также будут удалены.
  • Предотвращение злоупотребления разрешением READ_EXTERNAL_STORAGE: предоставление этого разрешения на сегодняшний день дает приложению доступ ко всему внешнему хранилищу, где хранятся личные фотографии, документы, видео и другие потенциально конфиденциальные файлы. Однако при применении Scoped storage приложения смогут видеть только собственные папки данных и определенные типы носителей, такие как музыкальные файлы, используя другие API хранилища.

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

Изменения в разрешениях доступа к файлам


  • Неограниченный доступ к индивидуальному хранилищу приложений: приложение будет иметь неограниченный доступ к внутреннему и внешнему хранилищу как для чтения, так и для записи. В Android 10 не нужно предоставлять разрешение на хранение для записи файлов в каталог приложений на SD-карте.
  • Неограниченный доступ к коллекциям медиафайлов и загрузок (добавленным собственноручно): вы получаете неограниченный доступ для добавления файлов в коллекции и загрузки приложения. При сохранении изображения, видео или любого другого медиафайла из коллекции не нужно запрашивать разрешение (если файл хранится в организованной коллекции.)
  • Доступ к коллекции медиафайлов других приложений можно получить с помощью разрешения READ_STORAGE_PERMISSION. Разрешение WRITE_STORAGE_PERMISSION со следующей версии станет устаревшим и будет работать так же, как READ_STORAGE_PERMISSION.
  • Для записи и чтения немедийных файлов, добавляемых другими приложениями, понадобятся API-интерфейсы доступа к хранилищу.

Примечание из документации по обновлению хранилища в Android 11: Если приложение использует устаревшую модель хранения и ранее предназначалось для Android 10 или ниже, возможно, его данные сохраняются в каталоге, к которому приложение не может получить доступ, когда задействована модель хранилища с областью видимости. Прежде чем перейти на Android 11, перенесите данные в каталог, совместимый с хранилищем ограниченной области видимости. В большинстве случаев перенести данные можно в каталог конкретного приложения.


Отказ от изменений для приложений на Android 10 и выше

Чтобы дать разработчикам дополнительное время для тестирования, приложения, ориентированные на Android 10 (уровень API 29), все еще могут запрашивать атрибут requestLegacyExternalStorage. Этот флаг позволяет приложениям временно отказаться от изменений, связанных с областью хранения, таких как предоставление доступа к различным каталогам и различным типам медиафайлов.

Любое приложение, предназначенное для Android 11 или более поздней версии, должно использовать новые API хранилища, включая хранилище с ограниченной областью видимости. Изменения в соглашении разработчика Google Play гласят, что, начиная с 1 августа 2020 года, все новые приложения, представленные в Google Play, должны быть нацелены на Android 10 или более позднюю версию, а все обновления существующих приложений должны быть ориентированы на Android 10 или более позднюю версию с 1 ноября 2020 года. Если все продолжится в том же духе, то в следующем году приложения, скорее всего, будет обязательно ориентировать уже на Android 11.

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

Операции хранения

Кратко рассмотрим некоторые часто выполняемые операции хранения и способы их выполнения:

  • Выбор файла: используйте ACTION_OPEN_DOCUMENT — он открывает системное приложение для выбора файлов, предоставляя пользователю возможность выбрал файл, который нужно открыть. Чтобы отобразить только те типы файлов, которые поддерживаются приложением, укажите тип MIME.
  • Выбор папки: Интент ACTION_OPEN_DOCUMENT можно заменить на ACTION_OPEN_DOCUMENT_TREE .

Примечание: этот доступ будет действителен до тех пор, пока пользователь не перезагрузит устройство. Если приложение хочет сохранить доступ, получая доступ к URI с помощью преобразователя содержимого, преобразователь содержимого должен вызвать метод takePersistableUriPermission .

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

  • Создание файла: чтобы сохранить файл в определенном месте, используйте ACTION_CREATE_DOCUMENT .

Примечание из документации разработчиков Android: ACTION_CREATE_DOCUMENT не может перезаписать существующий файл. Если приложение пытается сохранить файл с тем же именем, система добавляет число в скобках в конце имени файла.

Разрешение на определение локации медиа-файлов

Если приложение предназначено для Android 10 (уровень API 29) или выше, то для того, чтобы оно могло извлекать неотредактированные метаданные Exif из фотографий, необходимо объявить разрешение ACCESS_MEDIA_LOCATION в манифесте приложения, а затем запросить это разрешение во время выполнения.

Внимание: поскольку вы запрашиваете разрешение ACCESS_MEDIA_LOCATION во время выполнения, нет никакой гарантии, что приложение имеет доступ к неотредактированным метаданным Exif из фотографий. Приложение требует явного согласия пользователя, чтобы получить доступ к этой информации.

Приложения-менеджеры файлов

Существует обходной путь для приложений по типу файловых менеджеров, которые тоже должны иметь полный доступ ко всему. Нужно выполнить следующие простые шаги, перечисленные в инструкции по обновлению хранилища в Android 11:

Приложениям, действующим по закону, эти разрешения необходимы.

Как только пользователь предоставит разрешение на широкий доступ, он получит нефильтрованное представление MediaStore, которое включает в себя немедийные файлы.

Только приложения, которым Google предоставит такую возможность, будут иметь полный доступ к хранилищу. Для этого отправьте форму декларации в Google Play и получите место в утвержденном списке.

Приложения с кастомным средством выбора файлов

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

как найти карту памяти в телефоне

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

    В случае «чистого» Android 11 нужная программа называется «Файлы» и присутствует по умолчанию – откройте её.

как найти карту памяти в телефоне-1

как найти карту памяти в телефоне-2

как найти карту памяти в телефоне-3

В сторонних файловых менеджерах доступ к внешнему накопителю можно получить по подобному алгоритму.

Что делать, если файловый менеджер не видит карту

В некоторых случаях выполнение инструкции выше приводит к тому, что позиция, соответствующая внешнему накопителю, не появляется. Это может означать несколько вариантов проблемы.

  1. Наиболее часто отсутствие microSD значит, что она отформатирована как часть внутреннего хранилища телефона – для расширения имеющейся памяти под приложения и их данные. Следовательно, чтобы получить доступ, карту придётся переключить в режим внешнего носителя – о том, как это сделать, и обо всех нюансах процедуры вы можете прочитать в статье по ссылке далее.

как найти карту памяти в телефоне-4

как найти карту памяти в телефоне-5

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Прикрепленное изображение

ExtSD Fix
версия: 2.9b
Последнее обновление программы в шапке: 11.06.2016

Для функционирования программы необходимы права root пользователя.
Краткое описание:
снятие ограничений доступа к внешней SD-карте на андроиде KitKat, Lollipop
Описание:
0 так как программа пока не стабильна, лучше сделать backup SD-card
1 Выключите телефон,
2 Загрузите в CWM,
3 Сделайте резервную копию прошивки,
4 Установить zip-архив,
5 Перезагрузка телефона в обычном режиме.
Advantages
The advantage of this flashable zip over the other methods is that:
you don't need to install any apps,
you can revert by reflashing (not available for marshmallow),
it does not require you to have root.
Installation
It can insert and remove the permission to write on the external sdcard. To install follow these steps:
Turn off phone,
Boot into recovery,
Backup your system partition,
Flash this zip file once,
Reboot phone normally.
To revert the changes, follow the same steps again for kitkat and lollipop. This means that flashing it twice will have no effect. For Marshmallow, to revert the changes follow these steps:
Turn off phone,
Boot into recovery,
Using file browser go to /data/system/,
Replace packages.xml by the file starting with packages.xml-RW-,
Clean cache and DALVIK,
Reboot phone normally.
Note: On Marshmallow, busybox will be installed if not already present.

Альтернативные решения получения доступа к карте памяти:
XInternalSD
Marshmallow SD fix
Пишите о результатах: Модель телефона, Прошивка

Устанавливал версии 1.9b, 2.0b, 2.1b
2.0b, 2.1b устанавливаются с ошибкой 2
1.9b без ошибок, но система виснет на логотипе прошивки

PS устанавливал на n7105 прошивка RR 5.6.9 (CM 13)

Она чем то отличается от ® NextApp SDFix? - может кто рискнет на MIUI проверить? NextApp не помог, а борьба с Link2SD задолбала <_<

Как установить кэш в /obb и /data на Android 11 без Root

В новой версии Android Google не только внедрила новые полезные фичи, но и внесла некоторые изменения в файловую систему. Если быть точным, «корпорация добра» запретила сторонним приложениям выполнять действия с папками /Android/obb и /Android/data — файловые менеджеры выдают ошибку: «Не удалось создать папку… Android/obb. Permission denied. Не удалось создать… Android/obb. No such file or directory. Файлы не были извлечены».

По словам команды разработчиков, они пошли на этот шаг ради безопасности. Но вместе с этим теперь нельзя устанавливать сторонние приложения, требующие кэша. После установки Android 11, я первым же делом решил изучить этот вопрос и попытался обойти ограничение. На данный момент я нашёл только один метод, не требующий Root-права, — использование adb (Android Debug Bridge). Сразу отмечу, что для этого способа обязательно наличие ПК.

Содержание

Подготовка

Для начала необходимо на смартфоне зайти в «Настройки», затем в раздел «Для разработчиков» и включить в нём «Отладку по USB». Если у вас нет пункта «Для разработчиков», сперва придётся зайти в раздел «О телефоне», найти там «Номер сборки» и тапнуть по нему несколько раз, пока не появится надпись «Вы стали разработчиком».

Следующим шагом станет скачивание adb на ПК. Для этого необходимо зайти на официальный сайт и загрузить софт для своей платформы, после чего распаковать полученный ZIP-архив в удобном месте (если у вас Windows, для упрощения рекомендую переместить извлечённую папку в корень диска C).

Как установить кэш в /obb и /data на Android 11 без Root — Подготовка. 5

Как скопировать кеш в Android/obb или Android/data на Android 11

Итак, всё настроено и смартфон подключен к ПК. Если у вас Windows, первым делом нужно открыть «Командную строку» от имени администратора. Сделать это можно, набрав в поиске системы «cmd» и выбрав соответствующий пункт.

Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 1
Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 2

Далее необходимо прописать следующую команду: cd <путь к распакованной папке>. Например, если, как я советовал выше, папка находится в корне диска C, команда будет выглядеть следующим образом: cd C:/platform-tools. Как только вы окажетесь в нужной директории, можно прописать команду adb devices. Если всё сделано верно, в консоли отобразится подключённое устройство. В случае, если появится надпись unauthorized, необходимо со смартфона подтвердить вход в режим отладки на данном компьютере (скорее всего, это окно появится сразу же, как смартфон будет подключен к ПК).

Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 3
Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 4

Для удобства я переименовал папку platform-tools в adb, именно поэтому у меня путь C:/adb

Для владельцев компьютеров на macOS действия почти аналогичные. После загрузки и распаковки инструментов, необходимо открыть терминал, перейти в директорию с файлами (по дефолту это будет папка Downloads) командой cd <путь к распакованной папке> и прописать ./adb devices. По сути, отличие от Windows лишь в том, что каждый раз вместо adb надо писать ./adb.

Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 5
Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 6

Переходим непосредственно к загрузке файлов. Команда, которая для этого потребуется, строится по следующему шаблону: adb push <путь к нужному файлу на вашем ПК> <путь к папке obb или data на смартфоне>. Для владельцев macOS-устройств всё то же самое, но с ./ в самом начале команды. Важное замечание касательно второго пути (на смартфоне): он выглядит как sdcard/android/obb или sdcard/android/data.

Примечательно, что adb не умеет отправлять на устройство целые папки, поэтому для этого придётся заранее создать папку, и уже в неё кидать файл(ы). Создаётся папка командой: adb shell mkdir <путь вместе с желаемой папкой>.

В качестве примера я рассмотрю процесс переноса кэша для игры GRIS. Изначально он поставляется в папке com.devolver.grispaid, поэтому сначала я создам директорию на смартфоне командой adb shell mkdir sdcard/android/obb/com.devolver.grispaid.

Как установить кэш в /obb и /data на Android 11 без Root — Как скопировать кеш в Android/obb или Android/data на Android 11. 8

Как удалить кеш из Android/obb или Android/data на Android 11

Для удаления файлов необходимо прописать следующую команду: adb shell rm -f <путь к файлу>. Если же необходимо удалить директорию со всем содержимым внутри, пригодится следующая команда: adb shell rm -rf <путь к директории>.

Как установить кэш в /obb и /data на Android 11 без Root — Как удалить кеш из Android/obb или Android/data на Android 11. 1

Удаление и последующая проверка того, что папка с файлом удалена

Вывод

Google, несомненно, усложнила доступ к папкам data и obb, но всё же работать с этими директориями можно, пускай и с помощью дополнительных инструментов. Если вы знаете другие методы обхода данных ограничений в Android 11, делитесь ими в комментариях.

Читайте также: