Разрешения приложений android, как ими управлять

Как удалить App Permissions

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

Разрешения при загрузке софта

Когда вы загружаете программы из Play Store, некоторые из них перед установкой запрашивают разрешение на использование информации. При загрузке приложений, созданных для Android 6.0 и более поздних версий, вы можете предоставить или запретить разрешения непосредственно во время установки. Чтобы просмотреть разрешения той или иной утилиты перед установкой, сделайте следующее:

  1. Откройте приложение Play Store.
  2. Перейти на страницу сведений о приложении. Чтобы просмотреть разрешения перед установкой, пролистайте до раздела «Разработчик» и нажмите «Сведения о разрешениях».
  3. Нажмите «Установить».

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

Если приложение уже установлено

Для приложений, созданных для Android 6.0 и выше, просматривать или принимать изменения разрешений при каждом обновлении не нужно. Достаточно указать необходимые права при первом запуске программы. Если при обновлении приложению требуется доступ к новым группам разрешений или разрешениям в группе «Другие», вам будет предложено заново подтвердить решение, даже если вы настроили автоматические обновления. Если вы предпочитаете просматривать каждое обновление вручную, вы можете отключить автоматическое обновление, следуя приведённым ниже инструкциям:

  1. Откройте приложение Play Store.
  2. Нажмите кнопку Меню – Мои приложения и игры – Установленные.
  3. Выберите приложение.
  4. Нажмите Больше (вертикальная линия из 3-х точек).
  5. Снимите флажок «Автообновление», если он ещё не снят.

Чтобы отключить автообновление для всех приложений:

  1. Откройте приложение Play Store.
  2. Нажмите кнопку Меню – Настройки – Автообновление приложений – Никогда не обновлять автоматически.

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

Turn permissions on or off

You can change the permissions that apps can access in the main Settings app on your device at any time. Keep in mind turning off permissions may cause apps on your device to lose functionality.

Note: If you’re using a work, school, or government Google Account, your administrator may use the Device Policy app to control certain permissions.

See all permissions for each app

For apps installed on your device

  1. On your Android device, open the Settings app .
  2. Tap Apps & notifications.
  3. Tap the app you want to update.
  4. Tap Permissions.
  5. Choose which permissions you want the app to have, like Camera or Phone.

For instant apps

  1. On your Android device, open the Settings app .
  2. Tap Apps & notifications which will show recently opened apps at the top.
  3. Tap the app you want to see more about.
  4. Look under Permissions.

See all apps installed on your device that can access particular permissions

  1. On your Android device, open the Settings app .
  2. Tap Apps & notifications.
  3. Tap Advanced App permissions.
  4. Select a permission, like Calendar, Location, or Phone.
  5. Choose which apps should have access to that permission.

Check app permissions if an app isn’t working

If a feature within an app isn’t working as you would expect, try the steps below.

Step 1: Follow the instructions to contact the app’s developer.

Step 2: Check to see if any permissions have been disabled. To check app permissions:

  1. On your Android device, open the Settings app .
  2. Tap Apps & notifications.
  3. Tap the app you want to review.
  4. Tap Permissions. If a permission is turned off, the switch next to it will be gray.
  5. You can consider turning permissions on to see if that resolves your issue. To turn a permission on, tap the permission.
  6. Try using the app again.

Перечисления

DataProtectionPermissionFlags

Задает права доступа для шифрования данных и памяти.Specifies the access permissions for encrypting data and memory.

EnvironmentPermissionAccess

Задает доступ к переменным среды.Specifies access to environment variables.

FileDialogPermissionAccess

Указывает разрешенный тип доступа к файлам посредством диалогового окна Файл.Specifies the type of access to files allowed through the File dialog boxes.

FileIOPermissionAccess

Задает запрашиваемый тип доступа к файлу.Specifies the type of file access requested.

HostProtectionResource

Определяет категории функциональных возможностей для узла, которые могут быть потенциально опасны, если они вызываются методом или классом.Specifies categories of functionality potentially harmful to the host if invoked by a method or class.

IsolatedStorageContainment

Указывает разрешенное использование изолированного хранилища.Specifies the permitted use of isolated storage.

KeyContainerPermissionFlags

Задает разрешенный тип доступа к контейнеру ключей.Specifies the type of key container access allowed.

MediaPermissionAudio

Задает уровень разрешений для аудиозаписей.Specifies the permission level for audio.

MediaPermissionImage

Задает уровень разрешений для изображений.Specifies the permission level for images.

MediaPermissionVideo

Задает уровень разрешений для видео.Specifies the permission level for video.

PermissionState

Указывает, должно ли разрешение иметь полный доступ или не иметь никакого доступа к ресурсам при его создании.Specifies whether a permission should have all or no access to resources at creation.

ReflectionPermissionFlag

Определяет допустимое использование значения System.Reflection и пространства имен System.Reflection.Emit.Specifies the permitted use of the System.Reflection and System.Reflection.Emit namespaces.

RegistryPermissionAccess

Указывает разрешенный доступ к значениям и разделам реестра.Specifies the permitted access to registry keys and values.

SecurityAction

Указывает действия безопасности, которые можно выполнить с помощью декларативной безопасности.Specifies the security actions that can be performed using declarative security.

SecurityPermissionFlag

Указывает флаги доступа для объекта разрешения безопасности.Specifies access flags for the security permission object.

StorePermissionFlags

Задает разрешенный доступ к хранилищу сертификатов X.509.Specifies the permitted access to X.509 certificate stores.

TypeDescriptorPermissionFlags

Определяет настройки разрешений для дескрипторов типа.Defines permission settings for type descriptors.

UIPermissionClipboard

Указывает тип доступа к буферу обмена, допустимый для вызывающего кода.Specifies the type of clipboard access that is allowed to the calling code.

UIPermissionWindow

Указывает тип окон, которые могут использоваться кодом.Specifies the type of windows that code is allowed to use.

WebBrowserPermissionLevel

Указывает уровень разрешения для браузера.Specifies the permission level for a Web browser.

Определение

Пространство имен:
System.Security.Permissions
Сборка:
System.Security.Permissions.dll
Сборка:
mscorlib.dll

Внимание!

Code Access Security is not supported or honored by the runtime.

Позволяет выполнять проверки по активному субъекту (см. IPrincipal) с помощью конструкций языка, определенных для декларативных и императивных действий по обеспечению безопасности.Allows checks against the active principal (see IPrincipal) using the language constructs defined for both declarative and imperative security actions. Этот класс не наследуется.This class cannot be inherited.

В этой статье

Наследование

Object
PrincipalPermission

Атрибуты

ObsoleteAttribute

SerializableAttribute

ComVisibleAttribute

Реализации

IPermission

ISecurityEncodable

IUnrestrictedPermission

Откат к заводским настройкам

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

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

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

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

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

Эта функция доступна для всех пользователей Android 4.3, поэтому если вы успели обновиться, тогда Permissions Manager уже доступен для вас. Как им пользоваться? Самое главное условие — это наличие Android 4.3.

1. Установили или обновились до версии Android 4.3.

2. Скачиваем и устанавливаем это приложение . Это приложение дает доступ к так называемому “App ops”, другими словами Permissions Manager.

Что такое права администратора Android

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

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

App Ops

App Ops – это фреймворк внутри Android, который позволяет настраивать разрешения отдельных приложений. Впервые он появился в Android 4.3, но как-то напрямую не отображался в интерфейсе.

Android 6.0 внес существенные изменения в работу разрешений Android

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

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

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

Настройка ADB

Приложение Ops требует Android 6.0 и выше. Вам также необходимо приложение Shizuku Manager для вызова и обработки API-интерфейсов системного уровня, а также для обеспечения эффективной работы App Ops.

После настройки ADB откройте Сидзуку Менеджер, Введите эту команду в PowerShell:

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

Уникальные черты

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

Скачать: App Ops (бесплатная, доступная премиум-версия)

The new permission features in Android 11

At the moment, the latest version is Android 11 that is released by Google as a Beta version in August 6, 2020. Initially, Android 11 gives users the ability to specify more granular permissions for location, microphone, and camera. Also, the system resets the permissions of unused apps that target Android 11, and apps might require to update the permissions that they declare if they use the system alert window, or read information related to phone numbers. To be more specific, the changes have been mentioned as follows:

  1. Whenever your app requests a permission related to location, microphone, or camera, the user-facing permissions dialog includes an option that is called Only this time. If the user chooses this option in the dialog, your Android app is granted a temporary one-time permission.
  2. If your app targets Android 11 and is not used for a few months, the system protects user data by automatically resetting the sensitive runtime permissions that the user had granted your app.
  3. If your app targets Android 11 and also requires to access the phone number APIs shown in the following list, you have to request the permission instead of the permission.
  4. In the latest version, there are some changes to how apps are granted the permission. These changes are wanted to protect users by making the permission grant more intentional.

Методы

Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному требованием разрешения, через код, вызывающий этот метод, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. может вызвать проблемы системы безопасности.Using can create security issues.

(Унаследовано от CodeAccessPermission)

Создает и возвращает идентичную копию текущего разрешения.Creates and returns an identical copy of the current permission.

Принудительно создает SecurityException во время выполнения, если все вызывающие методы, расположенные выше в стеке вызовов, не получили разрешения, указанного текущим экземпляром.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Унаследовано от CodeAccessPermission)

Является устаревшей.

Является устаревшей.

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Унаследовано от CodeAccessPermission)

Определяет, равен ли заданный объект CodeAccessPermission текущему объекту CodeAccessPermission.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Унаследовано от CodeAccessPermission)

Восстанавливает разрешение с указанным состоянием из кодировки XML.Reconstructs a permission with a specified state from an XML encoding.

(Унаследовано от IsolatedStoragePermission)

Возвращает хэш-код для объекта CodeAccessPermission, который можно использовать в алгоритмах хэширования и структурах данных, например в хэш-таблице.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Унаследовано от CodeAccessPermission)

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)

Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.Creates and returns a permission that is the intersection of the current permission and the specified permission.

Определяет, является ли текущее разрешение подмножеством указанного разрешения.Determines whether the current permission is a subset of the specified permission.

Возвращает значение, указывающее, является ли текущее разрешение неограниченным.Returns a value indicating whether the current permission is unrestricted.

(Унаследовано от IsolatedStoragePermission)

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа ко всем ресурсам, за исключением ресурса, указанного текущим экземпляром.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Унаследовано от CodeAccessPermission)

Создает и возвращает строковое представление текущего объекта разрешения.Creates and returns a string representation of the current permission object.

(Унаследовано от CodeAccessPermission)

Создает кодировку XML для разрешения и его текущего состояния.Creates an XML encoding of the permission and its current state.

Создает кодировку XML для разрешения и его текущего состояния.Creates an XML encoding of the permission and its current state.

(Унаследовано от IsolatedStoragePermission)

Создает разрешение, представляющее собой объединение текущего и указанного разрешений.Creates a permission that is the union of the current permission and the specified permission.

До Android 6

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

Система показывает разрешения, которые были прописаны в манифесте. Сначала те, которые могут быть опасными с точки зрения приватности (отправка смс, доступ к камере/местоположению/контактам), а затем — обычные (интернет, bluetooth).

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

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

Если же в манифесте не указать разрешение READ_CONTACTS, то его не будет и в списке тех разрешений, которые подтверждает пользователь. Соответственно, система не предоставит этому приложению доступ к контактам. И при попытке получить список контактов, будет ошибка:java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2

Лучшая статистика батареи

Поиск приложений, вызывающих разрядку аккумулятора телефона, – загадка. Откуда вы знаете, что конкретное приложение переходит в состояние сна, когда вы выходите из него? И как вы можете измерить эффективность приложений для экономии заряда аккумулятора, таких как Naptime?

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

Настройка ADB

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

Уникальные черты

  • Показывает экран по отношению к бодрствующему. В идеале время экрана должно быть равно времени пробуждения.
  • Найдите изменения в профиле пробуждения / сна и быстро определите мошеннические приложения.
  • Статистика заряда батареи показывает вам подробные метрики Doze, чтобы вы могли проверить, насколько эффективны приложения по экономии заряда батареи.
  • Он может выбирать приложения, которые приводят к частичным wakelocks или приложениям, которые используют CPU в wakelocks ядра.

Скачать: Лучшая Статистика Батареи (2 $)

Intent

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

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование 

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме 

Обсудить на форуме

Requesting consent for an entire tenant

Often, when an organization purchases a license or subscription for an application, the organization wants to proactively set up the application for use by all members of the organization. As part of this process, an administrator can grant consent for the application to act on behalf of any user in the tenant. If the admin grants consent for the entire tenant, the organization’s users won’t see a consent page for the application.

To request consent for delegated permissions for all users in a tenant, your app can use the admin consent endpoint.

Additionally, applications must use the admin consent endpoint to request Application Permissions.

Объяснение для пользователя

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

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

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

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

Алгоритм работы метода shouldShowRequestPermissionRationale прост.

Если вы еще ни разу не запрашивали это разрешение, то он вернет false. Т.е. перед первым запросом разрешения ничего объяснять не надо.

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

Если пользователь ставил галку Don’t ask again, то метод вернет false. Запрос полномочий все равно не будет выполнен. Объяснять что-то не имеет смысла.

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

Критика

API полномочий Bukkit’а (также называющееся “superperms”) был разработан с целью централизации конфигурации прав пользователей, отсутствия необходимости поиска плагинов, которые были бы совместимы с какой-то определенной системой прав. Все текущие плагины полностью поддерживают ‘superperms’, кроме PermissionsEx.
PEX же работает против этой системы путем встраивания собственного кода. Это вызывало проблемы как у PEX, так и в самом Bukkit’е. Реализация «superperms» очень слабая, в некоторых случаях приводящая к серьезным сбоям. PEX пытается перенаправить все проверки привилегий через свою собственную систему, вместо работы с «superperms» Bukkit’а.

С версии 1.13 PEX поддерживает superperms

Что не так?

  • Неверная реализация дочерних привилегий. Может привести к тому, что у пользователей есть привилегии, которых им не давали напрямую.
  • Дэдлоки. Фриз сервера с комментарием ‘Read timed out’.
  • Когда PEX вылетает, вместе с ним в небытие уходит множество других плагинов (в силу жесткого встраивания кода в Bukkit).
  • Использование SQL приводит к лагам сервера. При удалении/добавлении привилегии происходит полная перезапись всех привилегий пользователя на сервере.
Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий