Проверка деклараций разрешений в Play Console
Вставьте AndroidManifest.xml или вывод aapt2 dump permissions для собранного APK. Будут показаны все разрешения, а те, которым может понадобиться декларация в Google Play Console, — первыми, с тем, чего ждёт Google и что делать. Работает в браузере: ничего не загружается. Страницы отдельных разрешений — на английском.
Работает в вашем браузере. Ничего из вставленного не загружается и не сохраняется.
Зачем проверять объединённый манифест, а не только свой?
Каждая подключённая библиотека приносит свой манифест, и сборка объединяет их с вашим. Так приложение начинает запрашивать разрешение, которое никто в команде не писал: рекламный SDK может добавить рекламный ID, библиотека обновлений или открытия файлов — REQUEST_INSTALL_PACKAGES, библиотека уведомлений или планирования — точные будильники. Google проверяет объединённый результат.
Чтобы увидеть список, который на самом деле получат пользователи:
- Android Studio: откройте
AndroidManifest.xmlи нажмите вкладку Merged Manifest внизу редактора. Она также показывает, из какой библиотеки пришла каждая строка. - Собранный APK: выполните команду ниже и вставьте её вывод сюда.
aapt2 dump permissions app-release.apkКак убрать разрешение, добавленное библиотекой?
Объявите то же разрешение в своём манифесте с tools:node="remove". Тогда при объединении оно выпадет, какая бы библиотека его ни запросила. Это одинаково работает в нативных проектах, во Flutter и в React Native (в двух последних файл — android/app/src/main/AndroidManifest.xml).
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:node="remove" />
</manifest>В проекте Expo укажите его в android.blockedPermissions в конфигурации приложения — это делает то же самое на этапе prebuild:
{
"expo": {
"android": {
"blockedPermissions": ["android.permission.QUERY_ALL_PACKAGES"]
}
}
}Затем проверьте, что делает эта библиотека. Если разрешение ей было нужно, функция может перестать работать, и выбирать придётся между функцией и декларацией.
Чего эта проверка не скажет?
Подходит ли ваше использование разрешения. Google разрешает большинство из них только определённым типам приложений, и только его проверка решает, относится ли к ним ваше. Кроме того, проверка читает только вставленный текст, поэтому не видит, что собирают SDK вашего приложения, на какой уровень API нацелена сборка и не остались ли внутри ключи.
Частые вопросы
- Каким разрешениям Android нужна декларация в Play Console?
- Чувствительным, которые Google разрешает только определённым типам приложений: фоновое местоположение, доступ ко всем файлам, SMS и журнал звонков, QUERY_ALL_PACKAGES, REQUEST_INSTALL_PACKAGES, точные будильники, полноэкранные интенты, доступ к фото и видео, типы активных служб, рекламный ID и другие. Разрешено ли оно вам, зависит от того, что делает приложение, и решает это только проверка Google.
- Почему у приложения есть разрешение, которое я не добавлял?
- Библиотеки приносят свои манифесты, а сборка объединяет их с вашим. Чтобы увидеть полный список, откройте объединённый манифест в Android Studio или выполните aapt2 dump permissions для собранного APK.
- Как убрать разрешение, добавленное библиотекой?
- Объявите его в своём манифесте с tools:node="remove" или в Expo укажите его в android.blockedPermissions. Затем проверьте функцию этой библиотеки, ведь ей это разрешение могло быть нужно.
- Мой манифест куда-то загружается?
- Нет. Проверка работает в браузере, и вставленный текст никогда не отправляется на сервер.
Читать дальше
Android permissions that need a Play Console declaration
По странице на каждое ограниченное разрешение: что оно даёт, кому Google его разрешает и чем его заменить. На английском.
Google Play pre-launch checklist for 2026
What to check before your app goes live on Google Play in 2026: closed test, target API 36, permissions, Data safety, App content and keys in the APK.
How to fill in the Data safety form for the SDKs in your app
Google Play holds you to what every SDK in your app collects. How to list the SDKs in your build, read their disclosures, and answer the Data safety form.