Что означают префиксы com.android.permission и com.google.android.permission
com.android.permission — это системные разрешения AOSP (ядра Android), доступные на всех устройствах; com.google.android.permission — разрешения, принадлежащие компонентам Google (GMS) и видимые только на устройствах с Google Play Services. Остальное объясню кратко и с практическими шагами.
Типы разрешений и где они объявлены
Разрешения объявляются в AndroidManifest.xml и по поведению делятся на:
- обычные — автоматически предоставляются (например, оформление уведомлений без приватных данных);
- опасные — требуют согласия пользователя при первом запросе или в настройках (контакты, местоположение, микрофон);
- специальные — требуют отдельного подтверждения или системных настроек (например, управление поверх других окон, доступ к сведениям о батарее).
Практический совет: первые 200 символов ответа приложения обычно должны отражать, зачем нужен доступ — это видно в UI запроса разрешения.
Различия между com.android.permission и com.google.android.permission
| Атрибут | com.android.permission | com.google.android.permission |
|---|---|---|
| Источник | AOSP (стоковый Android) | Google Mobile Services (GMS) |
| Наличие на устройствах | Все Android‑устройства | Только с предустановленными GMS (не все китайские модели) |
| Примеры | ACCESS_FINE_LOCATION, CAMERA, READ_EXTERNAL_STORAGE | ACTIVITY_RECOGNITION, BLUETOOTH_LE_ADVANCED_SCANNING |
| Последствия отсутствия | Обычно ограниченная функциональность приложения | Функции, зависящие от GMS, будут недоступны или приложение может падать |
Проверьте, какие разрешения действительно нужны приложению: в настройках выберите Приложения → [имя] → Разрешения и отключите лишние (например, микрофон для игр без голосового чата).
Как управлять и проверять разрешения (шаги)
- Через интерфейс:
- Откройте Настройки → Приложения → Все приложения → выберите приложение → Разрешения.
- Отключите опасные разрешения, которые не нужны.
- Для анализа и отладки (ADB):
- Список разрешений пакета: adb shell dumpsys package com.example.app | grep permission
- Проверка статуса конкретного разрешения: pm check-permission com.example.app android.permission.CAMERA
- Если приложение запрашивает нестандартный префикс (com.google... или com.vendor...), уточните: действительно ли этот компонент нужен для основной функции приложения.
На устройствах без GMS (кастомные прошивки, некоторые китайские модели) разрешения com.google.android.permission не работают: функции зависящих от них приложений могут нарушаться или приложение будет падать.
Частые ошибки
- Предоставлять все разрешения "про запас" — повышает риск утечки данных.
- Игнорировать запросы на опасные разрешения и не проверять, зачем они нужны.
- Пытаться удалить или изменить системные разрешения без root — это часто ломает приложения или систему.
- Полагать, что com.google.android.permission всегда безопасны: они относятся к сервисам Google и также дают доступ к чувствительным данным.
FAQ
- Нужно ли позволять com.google.android.permission всем приложениям?
- Нет. Разрешения с префиксом com.google.android.permission должны запрашиваться только если приложение использует соответствующие сервисы Google. Отключайте, если функциональность не нарушается.
- Почему приложение просит CAMERA, хотя не делает фото?
- Иногда доступ к камере требуется для сканера QR или SDK третьей стороны. Проверьте назначение и отклоняйте, если сомневаетесь.
- Как узнать, какие разрешения требует приложение до установки?
- В магазине приложений список прав обычно показывается на странице приложения. Локально — изучите AndroidManifest в APK (инструменты для анализа APK).
Если нужно, могу помочь разобрать конкретный пакет: скажите имя пакета или приложите вывод adb dumpsys, и я подскажу, какие разрешения стоит оставить, а какие — отключить.