Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью 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

  • Фоновое напоминание о местоположении доступа показывает пользователям, когда приложение получает доступ к местоположению их устройства, используя разрешение ACCESS_FINE_LOCATION в фоновом режиме.
  • Доступ к данным, связанным со связью контактов, управляемый компонентом поставщика контактов, осуществляется по-разному: приложения не могут записывать или считывать данные о связях контактов в базе данных. Это влияет на API вызывающего абонента .

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

Настройки разрешений были оптимизированы для 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 и выше.