Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Разрешения Android

Разрешения Android предоставляют элементы управления, которые повышают осведомленность пользователей и ограничивают доступ приложения к конфиденциальным данным. Настройка разрешений на Android 8.0 и ниже включает белый список, без которого привилегированные приложения отключены, даже если они находятся в пути priv-app . На Android 9 и выше устройство, которое пытается использовать приложения, не внесенные в белый список, не загружается.

Повышенная защита от потенциально вредных приложений (PHA) улучшает

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

Установка пакета и разрешение

В Android 9 и ниже функции установки пакетов и управления разрешениями содержались в пакете PackageInstaller ( //packages/apps/PackageInstaller ). В Android 10 и более поздних версиях функция контроля разрешений находится в отдельном пакете PermissionController ( //packages/apps/PermissionController ). На рисунке 1 показано, где находятся два пакета в Android 10.

Разделение функций установки пакетов и контроля разрешений для системных приложений и функций, используемых приложениями, установленными пользователем
Рисунок 1. Функции установки пакета и контроля разрешений в Android 10

Белые списки и доступ

В Android 6.0 и выше приложения запрашивают доступ к опасным разрешениям во время выполнения . В Android 10 добавлены разрешения времени выполнения распознавания активности (AR), которые предлагают пользователю изменить или разрешить опасные разрешения.

Android 8.0 требует, чтобы вы явно занесли привилегированные приложения в белый список в XML-файлах конфигурации системы в каталоге /etc/permissions . В Android 9 и выше привилегированные разрешения должны быть внесены в белый список, иначе устройство не сможет загрузиться.

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

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

Прозрачность и конфиденциальность

В Android 6.0 и выше заводской MAC-адрес устройства защищен от доступа со стороны поставщиков услуг Wi-Fi и анализаторов пакетов. Дополнительные ограничения Android 10 ограничивают доступ приложений к неизменяемым идентификаторам устройств (ID), если они не внесены в белый список для получения привилегированных разрешений . (В разделе «Возможности подключения » есть связанное обсуждение идентификаторов устройств , поскольку это влияет на операторов связи.)

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

Настройте разрешения для других функций прозрачности и конфиденциальности, начиная с Android 10.

Оптимизированные конфигурации

Конфигурации разрешений были оптимизированы для Android 6.0 и выше.

  • Внешние возможности для служб, запускаемых с помощью init хранят все аспекты конфигурации службы в одном файле .rc . При настройке возможностей для служб, запускаемых не с помощью init , настройте возможности файловой системы с помощью fs_config.c .
  • Android 7.x и ниже расширяют механизм идентификаторов Android (AID), используя файл android_filesystem_config.h для конкретного android_filesystem_config.h чтобы указать возможности файловой системы и / или пользовательские идентификаторы AID производителя устройства. Android 8.0 и выше поддерживает новый метод расширения возможностей файловой системы .
  • В Android 8.0 обработка команд USB перенесена из сценариев init конкретных устройств (замена уровней HAL) в собственный демон USB. Интерфейс USB HAL должен быть реализован на каждом устройстве, работающем под управлением Android 8.0 и выше.