• Управление правами приложений андроид. Как управлять разрешениями для отдельных приложений на Android

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

    Что такое разрешения приложений на Андроид

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

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

    Также можно просмотреть разрешения приложений на Андроид непосредственно перед их установкой:

    1. Откройте страницу приложения в Google Play
    2. Пролистайте страницу в самый низ
    3. Нажмите «Просмотреть разрешения»

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

    Управление разрешениями приложений

    Управление разрешениями приложений впервые стало возможным с выходом версии Андроид 4.3, для этого в систему была добавлена утилита App Ops. Но через настройки доступ к ней был закрыт, так как предназначалась она исключительно для разработчиков.

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

    Разрешения приложений на Андроид 4.3-4.4

    Если у вас смартфон с версией Андроид 4.3-4.4, то получить доступ к управлению разрешениями приложений вам поможет утилита AppOps .

    Порядок действий такой:

    1. Откройте AppOps
    2. Найдите в списке нужное приложение и нажмите на него
    3. Уберите галочку рядом с правами, которые хотите запретить

    Разрешения приложений на Андроид 5.0-5.1

    Если у вас есть Root права (вы сможете управлять разрешениями всех приложений, системных и сторонних):

    1. Выбираем рабочий режим Root
    2. Нажимаем «Проверка»
    3. Предоставляем приложению права суперпользователя
    4. Нажимаем «Выполнено»

    Если у вас нет Root прав (вы сможете управлять разрешениями только сторонних приложений):

    1. Выбираем рабочий режим Privilege mode
    2. Загружаем утилиту Shizuku manager и открываем ее
    3. Нажимаем на список авторизированных приложений и включаем App Ops — Permission manager
    4. Переходим в App Ops — Permission manager и нажимаем «Выполнено»

    После этого в App Ops — Permission manager можно настроить параметры разрешений для конкретного приложения по вашему усмотрению.

    А как вы контролируете разрешения приложений на Андроид? Напишите ваши варианты к комментарии.

    Ответы на вопросы

    После настройки разрешений в приложении произошел сбой, что делать?

    Такое может произойти в том случае, если приложение написано под более старую версию Андроид, чем на вашем устройстве. Если в приложении произошел сбой, зайдите в управление разрешениями и включите заново то разрешение, которое выключили. После этого приложение будет работать в нормальном режиме.

    • Перевод

    Сегодня 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);
    Обратите внимание, что данный код будет работать только в том случае, если соответствующий запрос содержится в файле манифеста:

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

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

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

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

    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 года, реализован новый механизм разрешений. Теперь они будут запрашиваться не во время установки приложения, а при первой попытке использования какой-либо функции. Будем надеяться, что это существенно облегчит жизнь как разработчикам, так и пользователям.

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

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

    В данную группу можно отнести те разрешения, которые позволяют получить доступ к личной информации пользователя.
    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 разрешения к приложениям выводятся именно в тот момент, когда игра/программа нуждается в этом. Вы сможете изучить, к чему именно требуется доступ и после чего принять верное решение.

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

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

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

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

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

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