Почему некоторые приложения не должны запрашивать разрешение «Рисовать поверх других приложений»?

В Android 6 приложения должны запрашивать у пользователя разрешение «Рисовать поверх других приложений», что

android.permission.SYSTEM_ALERT_WINDOW 

Однако есть некоторые заметные исключения, которые получают это разрешение при установке. Примеры — почти каждое приложение Google, например приложение «Фотографии». Для ОС Google это имеет смысл (и они, вероятно, находятся в разделе /system), но то же самое относится и к приложениям Facebook и FB Messenger, загружаемым через магазин.

Как это может быть? Платит ли Facebook Google за то, чтобы он был в каком-то белом списке за разрешение? Не подрывает ли это всю цель системы разрешений?

Где хранится информация о приложениях из белого списка? Это по сертификату?

Существует ли что-то подобное и для других разрешений?

Я нашел это: stackoverflow.com/questions/36016369 , этот ответ должен объяснить, почему приложения иногда автоматически получают такие разрешения.
Очень интересно! Спасибо, что поделились. Сам не нашел.

Ответы (1)

Основываясь на ответе Маттиа Маэстрини о переполнении стека ,

Это новое поведение, представленное в Marshmallow 6.0.1 .

Каждое приложение, запрашивающее SYSTEM_ALERT_WINDOWразрешение и установленное через Play Store (требуется версия 6.0.5 или выше), получит разрешение автоматически.

Если вместо этого приложение загружено, разрешение не предоставляется автоматически. Вы можете попробовать загрузить и установить APK Evernote с сайта apkmirror.com . Как видите, вам нужно вручную предоставить разрешение в Settings -> Apps -> Draw over other apps.

Это коммиты [1] [2] , которые позволяют Play Store автоматически предоставлять SYSTEM_ALERT_WINDOWразрешение.