Как предоставить разрешение приложению на андроид 11
Начиная с Android 10, способы предоставления разрешений приложениям более детализированы в настройках смартфона Android. Вы можете видеть разрешения Android по приложениям, по типу, а также более легко контролировать информацию, которую Google собирает от вас. В большинстве случаев вы можете разрешить или запретить, но некоторые разрешения имеют третий вариант: только при использовании приложения.
Как получить доступ к настройкам разрешений
Первый способ
Существует три способа перехода к диспетчеру разрешений. Первый вариант - перейти к дополнительным настройкам в разделе «Приложения».
- Откройте Настройки .
- Нажмите Приложения .
- Нажмите « Разрешения»> « Управление разрешениями» . Вы увидите список разрешений с подробной информацией под каждым из них, например, «Календарь» (разрешено 3 из 7 приложений).
4. Нажмите любое разрешение, чтобы увидеть, что оно значит. Приложения с разрешениями датчиков тела могут получать доступ к данным датчиков о ваших жизненно важных показателях.
5. Под ним находятся два раздела: Разрешено и Запрещено . Нажмите на имя приложения, чтобы разрешить или запретить разрешения.
6. Чтобы увидеть все разрешения для этого приложения нажмите на соответствующую ссылку на этом экране.
7. Вернитесь в « Управление разрешениями» . Нажмите « Местоположение» , найдите Карты (Google Maps) (или другое навигационное приложение), и вы увидите три варианта вместо двух: « Разрешить в любом режиме» , « Разрешить только во время использования приложения» и « Запретить» .
Второй способ
Другой способ - перейти на страницу всех приложений в настройках.
- Откройте « Настройки» .
- Нажмите « Приложения» .
- Нажмите « Просмотреть все приложения», чтобы получить полный список.
4. Нажмите на приложение, затем нажмите « Разрешения приложений», чтобы просмотреть все доступные для него разрешения.
5. Как и выше, вы увидите раздел « Разрешенные и запрещенные ». Нажмите на элемент, чтобы изменить разрешения. Нажмите « Все приложения с этим разрешением » , чтобы просмотреть полный список.
Как получить доступ к настройкам специальных разрешений
- Проделайте действия с 1 по 3 пункт из предыдущего способа.
- Выберите нужное приложение, затем нажмите « Другие разрешения», чтобы просмотреть список специальных разрешений.
- Затем нажмите на разрешение, которое хотите изменить. После чего перед вами откроется окошко, в котором можно будет настроить разрешение: Разрешить и Отказать или Спрашивать.
Примечание : Эти инструкции относятся к Android 10, 9.0 (Pie) и 8.0 (Oreo).
Разработчики из Google в сборке Android 11 Developer Preview 3 добавили достаточно полезную функцию настройки разрешений для приложений, которая позволяет в автоматическом режиме отбирать эти разрешения, если пользователь длительное время не запускал приложение. Стоит отметить, что изначально при установке программы или игры на смартфон данная функция неактивна и выведена в отдельный пункт меню под названием «Auto revoke permissions». Однако если пользователь активирует данную функцию для выбранного приложения, то разрешения будут отняты спустя какое-то время в случае бездействия.
Авторы данной функции уточнили, что отбираться права у приложений будут в том случае, если в течение нескольких месяцев пользователь не пользуется тем или иным софтом. К сожалению, пока что нельзя настроить функцию сразу на все приложения — нужно активировать режим «Auto revoke permissions» для каждого приложения отдельно. Также нужно отметить, что функция отбирает разрешения у приложений в выборочном порядке, а не полностью. Хотя, возможно, это баг и в ближайших обновлениях его поправят. И, конечно, стоит понимать, что пока что сборка только вышла и пользователи, которые её сейчас тестируют, не могут в полной мере оценить функцию — для этого нужно пользоваться смартфонов с Android 11 как минимум месяц.
С другой стороны, автоматическое отключение прав доступа для приложений, которые длительное время не используются, является отличным бонусом к безопасности. Многие вредоносные приложения могут вредить устройству пользователя лишь спустя время после установки, но с «Auto revoke permissions» такой возможности у них не будет.
Найти новую функцию можно несколькими путями. Например, можно сделать долгое нажатие на иконку приложения в меню последних запущенных приложений, после чего перейти в меню «Информация о приложении» и открыть вкладку «Разрешения». Либо же можно зайти в «Настройки», перейти в меню «Приложения и уведомления», нажать на нужное приложение, после чего открыть вкладку «Разрешения». По умолчанию новая функция выключена и её нужно активировать самостоятельно для каждого отдельного приложения.
Все последние улучшения в Android на уровне ОС касаются защиты приложений и пользовательских данных, а также более упорядоченного предоставления доступа. Несмотря на преимущества изменений, они также предполагают дополнительную работу для разработчиков.
В целях повышения конфиденциальности пользователей Android 11 добавлены некоторые существенные изменения и ограничения. Как указано в превью поведенческих изменений, они состоят в следующем:
Принудительное использование хранилища с ограниченной областью видимости (Scoped storage): доступ к каталогам внешних хранилищ ограничен каталогом конкретного приложения и определенными типами носителей, созданных приложением.
Автоматический сброс разрешений: если пользователи не взаимодействовали с приложением в течение нескольких месяцев, система автоматически сбрасывает конфиденциальные разрешения приложения.
Фоновый доступ к местоположению: пользователи должны быть направлены в системные настройки, чтобы предоставить приложениям разрешение на фоновое определение местоположения.
Видимость пакета: когда приложение запрашивает список установленных приложений на устройстве, возвращенный список фильтруется.
Недавно я глубоко погрузился в концепцию Scoped storage, чтобы понять, чего ожидать в будущем, и соответственно подготовить свое Android-приложение к переменам.
Прежде чем перейти к тому, что касается реализации, сначала разберемся, как было организовано хранилище данных до 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 (уровень 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 и получите место в утвержденном списке.
Что делать, если приложение задействует кастомный выбор файлов, который отображает точные каталоги данных? В этом случае ничего нельзя сделать. Возможно, стоит перейти на системное средство выбора файлов.
Многие обновления мобильной ОС Google находятся под капотом, но они могут помочь вам контролировать разрешения для приложений и обеспечить безопасность данных.
Вам повезло, если вы попали в первую группу получателей Android 11 и она уже установлена и работает на вашем телефоне, в противном случае вы сможете установить ее на свой телефон в ближайшее время.
Как и в случае с большинством основных обновлений Android, функциям безопасности и конфиденциальности уделяется много внимания, и теперь существует больше интегрированных инструментов и опций, чтобы защитить вас и ваш смартфон от слежки и хакеров, желающих похитить ваши данные. Давайте посмотрим на эти функции по внимательнее
Одноразовые разрешения
Вероятно, вы знакомы с процессом предоставления разрешений приложениям для таких частей вашего телефона, как микрофон и камера, но в Android 11 есть новый параметр, о котором следует знать: одноразовое разрешение, которое означает, что приложение может использовать вашу камеру (микрофон или местоположение), но ему придется запросить разрешения снова, когда ему понадобится доступ в следующий раз.
Он идеально подходит для приложений, которым вы не совсем доверяете или которыми не пользуетесь очень часто - он менее подходит для приложений, которые вы всегда используете (разрешать доступ Instagram к камере каждый раз, когда вы хотите сделать снимок, будет не совсем удобно) .
Разрешения будут сброшены для приложений, которые вы не используете. Изображение: DAVID NIELD
Новая опция появляется в ключевых разрешениях - камера, микрофон, местоположение - когда они нужны приложениям, поэтому выбирайте с умом. В Android 11 есть еще одна новая и связанная функция, которая менее очевидна: если вы не используете приложение в течение нескольких месяцев, все его предыдущие разрешения будут сброшены, и ему нужно будет запросить их снова.
Ограниченное хранилище
Не очень интересно с точки зрения конечного пользователя, но важно для скрытой безопасности Android 11, ограниченное хранилище означает, что приложения имеют доступ к своим собственным хранилищам данных и не всегда получают доступ к хранилищам других приложений, что теоретически должно обеспечить большую безопасность вашей конфиденциальной информации.
Это несколько спорное изменение: приложения могут потребоваться получить данные из других приложений или услуг по целому ряду причин, такие как приложению для редактирования изображений может понадобиться доступ к вашей фото галерее, к примеру. Хранилище с ограниченным объемом памяти не делает это невозможным, но разработчикам приходится преодолевать больше препятствий и соблюдать правила Android, чтобы это произошло.
Ваше устройство автоматически станет безопаснее, потому что приложения будут иметь более строгие ограничения. Если вы видите, что приложения отправляют запросы на разрешения для папок хранилища на вашем устройстве, просто дважды проверьте, что именно они запрашивают, прежде чем принимать решение о разрешении или блокировке.
Фоновый доступ к местоположению
В Android 11 есть еще одна функция, связанная с разрешениями, о которой стоит упомянуть, и это доступ к фоновому местоположению - приложения могут отслеживать ваше местоположение в фоновом режиме. Когда приложение впервые запрашивает разрешение на отслеживание местоположения, возможность постоянно включать это (даже если приложение не запущено) недоступна: для этого вам необходимо посетить определенную страницу приложения в настройках Android.
Теоретически дополнительные шаги должны заставить нас всех дважды подумать о предоставлении доступа к фоновому местоположению для приложения, а не просто автоматически нажимать для предоставления разрешения по привычке.
Безопасное хранение учетных данных
В Android 11 представлены специальные инструменты для безопасного управления идентификационными данными на вашем телефоне - подумайте, например, об электронных идентификаторах или водительских правах - ваш телефон уже фактически стал "идентификационным бейджем".
Ничего из этого полностью не работает прямо сейчас, но такие инструменты есть внутри Android 11 на тот случай, если разработчики захотят их использовать, и Google поощряет их это делать. Некоторое время он может быть недоступен в некоторых регионах и на некоторых устройствах Android 11, но это только временно.
Одним из важных аспектов новой функции является то, что ваши учетные данные будут храниться в автономном режиме, поэтому информация о них не будет передаваться в сеть, и ее будет очень трудно скачать с телефона, если она попадет в чужие руки. Следите за дополнительной информацией об этой функции в будущих обновлениях Android.
Биометрия и шифрование
Два небольших обновлений безопасности для Android 11, о которых стоит упомянуть, посвящены биометрии и шифрованию. Биометрическая поддержка в Android 11 - разблокировка по отпечатку пальца и распознаванию лица - была распространена на более широкий спектр устройств, сообщает Google, с большим количеством уровней авторизации (поэтому разблокировка по лицу, которая использует не самую надежную технологию распознавания лиц, не может использоваться для совершения мобильных платежей, например).
Что касается шифрования, устройства Android уже зашифрованы по умолчанию, поэтому без вашего PIN-кода данные на вашем телефоне практически не скачать. Но в Android 11 шифрование применяется сразу после обновления, еще до того, как вы снова войдете в систему. Это небольшое изменение, но оно закрывает еще одну лазейку, которая могла быть использована для доступа к вашей личной информации.
Больше обновлений в магазине Google Play
Android 11 основан на существующей инициативе под названием Project Mainline, которая по сути продвигает ключевые обновления безопасности через Play Store - это означает, что вам не нужно ждать, пока Samsung, Sony или какая-либо другая компания выпустившая телефон, приступила к выпуску нового версия Android, чтобы ваш телефон станет безопасным.
Дополнительные обновления безопасности поступят через магазин Google Play. Изображение: DAVID NIELD
Основные обновления Android по-прежнему будут выпускаться раз в год, как обычно, с новыми функциями и опциями, но Project Mainline означает, что Google может быстрее реагировать на угрозы безопасности в Android и обеспечивать исправление для любого телефона с доступом к Play Store так быстро, на сколько это возможно.
Данная статья является ручным переводом материала из журнала Wired.
Подписывайся на Эксплойт в Telegram, чтобы всегда оставаться на страже своей приватности и безопасности в интернете.
Читайте также: