#security #subscribers
Тут @vitach скинул свою статью, где описывает, как подменить Runtime Permissions на свежих версиях Android.
Если посмотреть на реализацию системного показа диалога с разрешениями, то можно увидеть
GrantPermissionsActivity, который запускается после запроса на выдачу разрешений и отображает нам диалог со знакомым интерфейсом.Идея заключается в наложении поверх этой системной
Activity своей с флагом android:windowIsTranslucent=true, который позволяет делать Activityс прозрачным фоном, а также добавить парочку флагов, чтобы убрать фокус:• FLAG_NOT_FOCUSABLE — убирает возможность взаимодействия с методом ввода;
• FLAG_NOT_TOUCH_MODAL — отправляет события touch за пределы нашего окна;
• FLAG_NOT_TOUCHABLE — убирает возможность получать события касания.
В результате мы получаем открытую фейковую
Activity, где можем написать любое разрешение или текст, но при этом, по факту, вызвать совершенно другое. Правда, в некоторых версиях системы у нас есть отличающийся дизайн этих диалогов, но всегда можно допилить UI, используя описанный подход.Баг работает на версиях Android >= 7.1.1, так как до этой версии показывался диалог с предупреждением о перекрытии окна.
Ссылка на код тут, а статья с описанием тут. Ну и читайте внимальнее те разрешения, которые даёте установленным приложениям.🙄