» » Как изменить разрешения программы на андроид. Почему приложения на Андроид запрашивают разрешения? Доступ к контактам и SMS-сообщениям

Как изменить разрешения программы на андроид. Почему приложения на Андроид запрашивают разрешения? Доступ к контактам и SMS-сообщениям

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

Опасные разрешения к которым стоит присматриваться

В данную группу можно отнести те разрешения, которые позволяют получить доступ к личной информации пользователя.
  1. Календарь – просмотр событий, изменение текущий событий уже, добавленных в календарь и создание новых. Подобное разрешение может быть опасно тем, кто часто использует календарь, планирует свои действия, расписывая буквально каждую минуту времени. Если злоумышленники получат доступ к вашему местоположению, то сами знаете, чем это может закончиться.
  2. Контакты – чтение, просмотр, редактирование, добавление новых контактов и полный доступ к списку аккаунтов. Наверняка многим из нас через SMS или мессенджеры поступал надоедливый спам от тех или иных компаний. Доступ к контактам стоит давать лишь проверенным приложениям, иначе, ваш номер может оказаться не в тех руках, к сожалению, мошенников слишком много, да и полностью от спама избавиться невозможно.
  3. Камера – использование, без предварительного подтверждения пользователя. Получив разрешение к камере вашего устройства, приложение может в любой момент делать фото и видео, не уведомляя вас об этом.
  4. Микрофон – запись звука. Полная запись телефонных разговоров, постоянная активность микрофона, запись всего происходящего вокруг без уведомления пользователя.
  5. SMS – чтение, отправка, редактирование, переадресация сообщения. Наверняка, одно из самых опасных разрешений, которое может без вашего ведома отправить сообщение на любой из номеров и тем самым активировать платную подписку.
  6. Память – чтение/запись из и в память. Данное разрешение позволяет приложению просматривать файлы на вашем устройстве, удалять их, копировать, перезаписывать и многое другое.

Как выполнить настройку разрешений приложений

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

Android 4.3

Чтобы управлять разрешениями в данной версии ОС, вам потребуется программа AppOps.
  1. Скачиваем, устанавливаем и запускаем приложение.
  2. Переходим на вкладку приложения (apps), находим нужную программу или игру и нажимаем на нее.
  3. Устанавливаем/убираем галочки с нужных вам разрешений.

Android 5.0

Для смартфонов и планшетов, работающих под управлением операционной версии Android 5.0, чтобы управлять разрешениями, нужно использовать программу App Ops - Permission manager. Программа позволяет управлять разрешениями, как системных приложений (требуются ROOT-права), так и сторонних, установленных пользователем в ходе использования устройства. Без ROOT-прав на Android 5.0-5.1 данная программа, к сожалению, не работает, даже обычный режим.

Android 6, 7, 8

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

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

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

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

Если приложение требует «опасного» разрешения, тогда система запрашивает согласие у пользователя. Почему некоторые полномочия считаются опасными? В каких случаях лучше запретить доступ?

Опасные разрешения для приложений

В категорию «опасно» можно отнести девять групп полномочий. Приложения, которые их требуют, каким-то образом влияют на частную жизнь или безопасность пользователя . В каждой группе есть такие полномочия, которых может потребовать какое-либо приложение.

Если пользователь одобрит какие-либо разрешения, приложение получает все разрешения из этой группы автоматически, без дополнительного подтверждения. Например, если приложение получает разрешение на чтение SMS-сообщений, то может также отправлять SMS-сообщения, просматривать MMS-сообщения и выполнять другие действия, относящиеся к этой группе.

Календарь

Возможности :

  • Просмотр событий, хранящихся в календаре (READ_CALENDAR).
  • Редактирование старых событий и создание новых (WRITE_CALENDAR).

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

Камера

Возможности :

Опасности : приложение будет знать, где вы находитесь, в любое время. Может, например, дать знать грабителям, когда Вас нет дома.

Микрофон

Возможности :

  • Запись звука с микрофона (RECORD_AUDIO).

Опасности : приложение может записывать всё, что происходит рядом с телефоном. Все разговоры. Не только тогда, когда Вы разговариваете по телефону, но и в течение всего дня.

Телефон

Возможности :

  • Чтение информации о телефоне (READ_PHONE_STATE) позволяет программе узнать номер телефона, текущей мобильной сети, состояние текущих соединений и т.д.
  • Совершать звонки (CALL_PHONE).
  • Просмотр списка вызовов (READ_CALL_LOG).
  • Изменение списка вызовов (WRITE_CALL_LOG).
  • Добавление почтового автоответчика (ADD_VOICEMAIL).
  • Использование VoIP (USE_SIP).
  • Обработка разрешений исходящих вызовов (PROCESS_OUTGOING_CALLS) дает приложению доступ к информации, кто звонит, и позволяет перенаправить его на другой номер.

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

Датчики тела

Возможности :

  • (BODY_SENSORS) – эти права обеспечивают доступ к данным, связанным со здоровьем, собираемым некоторыми датчики, такими как датчик сердечного ритма.

Опасности : если вы используете аксессуаров с датчиками тела (помимо встроенных в телефон датчиков движения), это приложение получает данные о том, что происходит с вашим телом.

SMS

Возможности :

  • Отправка SMS-сообщения (SEND_SMS).
  • Просмотр сохраненных сообщений (SMS READ_SMS).
  • Прием SMS-сообщений (RECEIVE_SMS).
  • Прием сообщений WAP Push (RECEIVE_WAP_PUSH).
  • Прием входящих MMS-сообщений (RECEIVE_MMS).

Угрозы : позволяет приложению принимать и читать входящие SMS-сообщения и отправлять их (разумеется, за ваш счет).

Память устройства

Возможности :

  • Чтение SD-карты или другого носителя памяти (READ_EXTERNAL_STORAGE).
  • Сохранение записей в памяти или на SD-карте (WRITE_EXTERNAL_STORAGE).

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

Как настроить разрешения для приложений

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

В каждом случае предоставление полномочий следует тщательно обдумать. Например, если какая-то игра или инструмент для редактирования фотографий, пытается получить доступ к вашему текущему местоположению, это выглядит страно. Между тем, карты и навигаторы действительно нуждаются в GPS-данных – но им не зачем получать доступ к списку контактов или SMS.

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

Вы также можете проверить список предоставленных разрешений и изменить их для любого приложения. Для этого выберите пункт Настройки Приложения (в зависимости от версии Android эти и другие элементы меню могут иметь разные названия).

Теперь у вас есть на выбор два пути. Вы можете проверить все разрешения, предоставленные приложениям. Для этого нажмите на название приложения и выберите Разрешения .

Другой способ – это просмотреть список всех приложений, которые уже требовали или могут не требовать одно из опасных прав. Например, хорошей идеей будет проверить, какие приложения хотят иметь доступ к списку контактов, и аннулировать разрешения в случае сомнений. Для этого щелкните Настройка приложения (значок шестеренки в правом верхнем углу) и выберите пункт Разрешения приложений .

Особые разрешения для приложений

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

Доступность

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

После получения таких разрешений доступа троянские программы могут извлекать данные из приложений (в том числе ввод текста – пароли). Кроме того, вредоносные программы могут приобретать приложения в магазине Google Play.

Стандартное приложение для общения

Банковские трояны хотят быть стандартными приложениями для обработки SMS, потому что таким образом они могут читать SMS-сообщения и скрывать их – даже в более поздних версиях Android.

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

Всегда сверху

Право наложения окна поверх других приложений позволяет троянам отображать фишинговые окна вместо интерфейса оригинальных приложений (обычно это относится к приложения мобильного банкинга или социальных сетей).

Жертва думает, что вводит свой пароль в форму реального приложения, но, на самом деле, всё происходит в ложном окне, открывающемся трояном, а конфиденциальные данные мигрируют к преступникам.

Права администратора устройства

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

Права root

Это самое опасное разрешения. По умолчанию система Android никогда не дает их приложениям, но некоторые троянские программы могут использовать уязвимости в системе, чтобы получить root-права. Тогда все остальные защиты становятся бесполезными – вредоносная программа может использовать права root для выполнения всего, независимо от того, какие полномочия были одобрены или отклонены.

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

Выводы

Приложения не должны делать всё, что хотят на вашем телефоне, особенно, если они без причины хотят прав из категории опасных.

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

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

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

Недавно состоялся официальный релиз операционной системы . Владельцы устройств линейки Nexus, а также аппаратов программы Android One уже могут . В Android 6.0 Marshmallow появилось много новых функций, включая управление привилегиями приложений. Как разобраться с ними мы решили рассказать в этой статье.

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

Однако программы, которые уже были установлены до обновления на Android 6.0 Marhmallow, уже получили свои привилегии и запросят их только при следующем апдейте через . Чтобы просмотреть права уже установленных программ нужно следовать простой инструкции:

1. Перейти в меню настроек через верхнюю «шторку» или через меню приложений.

2. Перейти во вкладку «Приложения».

3. Тапнуть на иконку дополнительных настроек в правом верхнем углу.

4. Перейти в раздел «Разрешения приложений».

5. Перед вами список всех возможных прав, которые могут получать приложения. Если перейти в раздел какой-либо привилегии, то вам откроется список всех приложений с тумблерами справа. Включенный тумблер означает, что приложение имеет доступ, например, к , выключенный - не имеет доступа. Тумблеры можно переключать. Таким образом можно отбирать или давать права приложениям. Не хотите, чтобы какая-то программа пользовалась GPS - дерните за переключатель в соответствующем разделе.


Также управление правами приложений в Android 6.0 Marshmallow предполагает отображение программ, которые могут изменять настройки.


В разделе дополнительных настроек приложений есть раздел «Изменение системных настроек». В нем можно узнать, какие приложения имеют доступ к изменению системных параметров, например различные геолокационные сервисы могут изменять точность работы GPS. Помимо этого, доступ к системным настройкам позволяет считывать большинство данных об устройстве. Этот раздел удобен для поиска подозрительных приложений, которые имеют доступ к системным настройкам. Многое вредоносное ПО работает именно с такими привилегиями.

Иногда пользователю следует задуматься, следует ли определенному приложению выдавать то или иное разрешение.

Как известно, чтобы программа для Android нормально функционировала, ей нужно получить соответствующие разрешения. Какие-то приложения требуют доступ к чтению файловой системы, другим нужна ещё и запись, третьи хотят знать информацию о местоположении пользователя, четвертые желают передавать данные через Wi-Fi в любых объемах… В этой статье будут рассмотрены те разрешения, которые следует предоставлять приложению только в том случае, если вы уверены в нём на все 100%.

Управление временем «сна»

Любой смартфон и планшет по истечению определенного времени уходит в «сон». Это позволяет процессору отключить половину своих ядер, начав тем самым экономить энергию. Большинство приложений не способно пробудить устройство, их работа приостанавливается. Если только программа не получила разрешение на работу даже во время «сна».

Подобное разрешение вполне можно предоставить почтовому клиенту или мессенджеру. Должны его получить и клиенты социальных сетей. Однако всем подряд раздавать такое разрешение не следует.

Если его получит вредоносная программа, то она сможет вести какие-либо вычисления даже в фоне. Например, в якобы спящем режиме смартфон из-за этого приложения будет рассылать спам-рассылку или даже майнить криптовалюту. В некоторых случаях это будет приводить к нагреву устройства. И практически всегда такие действия зловредной программы снижают время автономной работы.

Местоположение на основе данных GPS

Сейчас практически все смартфоны на базе Android оснащаются GPS-чипом. Его показания влияют на то, какая именно реклама отображается в браузере и других приложениях. Также географические координаты нужны поисковой выдаче, где в первую очередь будут отображаться ближайшие к пользователю магазины, а затем уже все остальные. Само собой, разрешение для получения GPS-данных придется предоставить навигационным программам, содержащим в себе карту. Но зачем такое разрешение требует «Фонарик», скачанный из Google Play?

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

Следует не забывать, что каждое обращение к показаниям GPS-чипа расходует некоторый объем энергии. Поэтому будет лучше, если такие запросы смогут делать лишь некоторые программы.

Местоположение на основе данных GSM-модуля

Операционная система Android умеет определять местоположение не только при помощи GPS-чипа. Примерную информацию можно получить благодаря вышкам сотовой связи. Конечно, так получится узнать только ваш район или квартал. Но зловредным приложениям может хватить и этого. Обязательно следите за тем, каким программам вы предоставляете разрешение на определение местоположения по GSM-связи!

Доступ к автозапуску системы

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

Проблема заключается в том, что при получении такого разрешения приложение может внести в конфигурационные файлы операционной системы некоторые изменения. Например, так спокойно можно запретить запуск антивируса. Или же приказать системе при своём старте запускать некий вредоносный код.

Разрешение на доступ к автозапуску ОС следует предоставлять только проверенным временем твикерам. Например, тем, что рассмотрены в нашей подборке .

Полный доступ к Интернету

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

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

Управление вибрацией

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

Доступ к SD-карте

Без доступа к карте памяти не может нормально функционировать ни один файловый менеджер. Понадобится он и всяческим проигрывателям, которые считывают с карточки музыку и видеоролики. Но нужен ли такой доступ абсолютно всем приложениям?

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

Если вы храните на своём смартфоне какие-то секретные данные (например, финансовые отчеты собственной фирмы), то лучше не предоставлять доступ к SD-карте незнакомым программам. Более того, таким людям рекомендовано регулярно делать бэкап карты памяти и её форматирование - хотя бы раз в квартал.

Состояние связи

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

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

Доступ к состоянию приложений

Это разрешение является очень полезным для тех программ, которые встраивают в систему рекламные модули. Действуют они очень просто.

Получать доступ к состоянию приложений должны только самые важные утилиты. Это могут быть антивирусы и оптимизаторы. И не выбирайте на эту роль творения доселе никому неизвестных разработчиков.

Контроль Wi-Fi соединения

Данное разрешение придется предоставить всем приложениям, которые работают при помощи интернет-соединения. Однако ни в коем случае не предоставляйте его всяческим «фонарикам» и программам для создания заметок (если только последние не способны на синхронизацию).

Если приложение окажется зловредным, то оно может начать сканировать вашу Wi-Fi сеть. Оно узнает её настройки, после чего передаст их на сервер разработчиков. Не исключено, что в будущем это приведет к перехвату связи, а также передаче и приему вредоносного кода. Подтверждением этому является недавнее внедрение вируса KRACK, от которого пострадало достаточно большое количество пользователей.

Не застрахованы от воздействия хакеров и популярные приложения - всяческие браузеры и мессенджеры. Поэтому не забывайте их обновлять, чтобы все обнаруженные «дыры» в безопасности быстро закрывались.

Доступ к состоянию смартфона и его идентификации

Некоторые приложения требуют полный доступ к идентификации смартфона. Это означает, что они отныне будут знать его IMEI, конфигурацию, номер телефона и прочую информацию. Знать всё это каждой программе совершенно не обязательно. Если это какой-нибудь простенький справочник рыболова, то лучше соответствующий запрос отклонить. Удовлетворить же его следует, если вы установили лицензионную игру (за покупку которой заплатили), приложение банка, клиент «Яндекс.Денег» или какую-то другую подобную программу. Остальные творения разработчиков пусть узнают вас по логину и паролю - знать IMEI им ни к чему.

Что же могут сделать зловредные программы, если получат доступ к идентификационным данным устройства? Их создатели могут использовать полученную информацию в своих интересах. Например, они могут клонировать IMEI, начать отправлять на ваш номер телефона спам и совершить прочие подобные действия. Грубо говоря, именно так чаще всего совершаются преступления в сфере онлайн-финансов.

Доступ к контактам и SMS-сообщениям

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

Если разрешение на чтение контактов получит какое-то зловредное приложение, то ваши друзья и коллеги могут ждать всяческого спама в виде SMS. Именно так чаще всего собираются базы телефонных номеров, которые сейчас свободно можно купить в Telegram.

Словом, не предоставляйте соответствующий доступ фотогалереям и офисным приложениям. Им контакты не нужны. Впрочем, существуют исключения из правила. Например, Samsung Health сканирует контакты для того, чтобы вы начали соревноваться с другими обладателями данной программы. А ещё мы рекомендуем вам время от времени чистить свою контактную книгу. Оставляйте в ней только тех людей, с которыми возможно общение. Не стоит держать в телефонной книге номера, полученные из сервисов бесплатных объявлений - понятно ведь, что такому человеку вы больше не позвоните.

Подведение итогов

Здесь находятся все разрешения для приложений

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

А как к безопасности относитесь вы? Следите ли вы за тем, какие разрешения запрашивают устанавливаемые вами приложения? Отпишитесь о своём мнении в комментариях.

  • Перевод

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

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

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

Разрешения являются своеобразным фильтром для функционала приложений, и только от пользователя зависит, давать ли доступ к данным во время инсталляции. Проблема в том, что пользователи обычно не читают, к чему именно хочет получить доступ приложение, и, не задумываясь, его разрешают. Такое поведение создаёт предпосылки для злоупотребления личными данными или даже модифицирования ядра.

Здесь мы рассмотрим существующую систему манифестов и разрешений в Android. Файл манифеста содержит информацию о пакете приложения, включая разрешения, поставщиков контента, сервисы, активности и широковещательных приёмников (broadcast receivers).

Пример общей структуры файла манифеста. Цветом выделены запросы на получение разрешений:

Самые опасные разрешения

Чтобы решить, к каким данным можно дать доступ, пользователь должен помнить о предназначении этого приложения. Например, «Зачем игре понадобился доступ к моей адресной книге или разрешение отправлять SMS?» Очевидно, что игры не предполагают отправки SMS. Подобные несоответствия функционала запросам доступа должны настораживать в первую очередь.

Разрешения, которые в будущем вы возможно захотите пересмотреть

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






Разрешения, связанные с финансовыми расходами. Некоторые разрешения, бездумно предоставленные пользователями, могут стоить им денег. Чаще всего это отправка SMS/MMS и совершение голосовых вызовов. Причём происходить это может в фоновом режиме, без вызова стандартного телефонного приложения.
Запрос на отправку сообщений:

Запрос на совершение звонков:

Простой пример отправки SMS:

String message = "Hello Android fans! "; String number = "xxxxxxxxxxxx"; //it is preferable to use a complete international number SmsManager.getDefault().sendTextMessage(number, null, message, null, null);
Обратите внимание, что данный код будет работать только в том случае, если соответствующий запрос содержится в файле манифеста:

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

  • примерном местоположении пользователя согласно данным базовых станций и точек Wi-Fi;
  • точном местоположении пользователя согласно данным GPS, базовых станций и Wi-Fi.
Запрос доступа к данным о примерном местоположении:

Запрос доступа к данным о точном местоположении:

Вот как осуществляется получение данных о точном местоположении:

Public class MainActivity extends Activity implements LocationListener { private LocationManager locationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this); } @Override public void onLocationChanged(Location location) { String myLocation ="Location changed...\n\nYou are located at: " + "\nLatitude: " + location.getLatitude() + "\nLongitude: " + location.getLongitude(); Toast.makeText(getApplicationContext(), myLocation, Toast.LENGTH_LONG).show(); } @Override public void onProviderDisabled(String provider) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); Toast.makeText(getApplicationContext(), "Gps is turned off... ", Toast.LENGTH_SHORT).show(); } @Override public void onProviderEnabled(String provider) { Toast.makeText(getApplicationContext(), "Gps is turned on... ", Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }
Не забывайте, что работоспособность данного кода зависит от наличия соответствующего запроса в файле манифеста.

Java-класс MainActivity внедряет LocationListener для получения нужных данных от устройства. Запрос текущего местоположения осуществляется вызовом requestLocationUpdates() в методе onCreate() . Когда местоположение изменяется, то для получения новых данных вызывается onLocationChanged() . Если GPS-данные недоступны, то вызывается метод onProviderDisabled(), передающий приложению информацию о местоположении.

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




Установка пакетов. Если дать такое разрешение, то приложение сможет устанавливать дополнительные пакеты без ведома пользователя.

Остановка фоновых процессов. Данное разрешение позволяет приложению вызывать killBackgroundProcesses(String), с чьей помощью оно может останавливать любые выполняющиеся в фоновом режиме процессы.

Android Marshmallow

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