Что означают префиксы 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.permissioncom.google.android.permission
ИсточникAOSP (стоковый Android)Google Mobile Services (GMS)
Наличие на устройствахВсе Android‑устройстваТолько с предустановленными GMS (не все китайские модели)
ПримерыACCESS_FINE_LOCATION, CAMERA, READ_EXTERNAL_STORAGEACTIVITY_RECOGNITION, BLUETOOTH_LE_ADVANCED_SCANNING
Последствия отсутствияОбычно ограниченная функциональность приложенияФункции, зависящие от GMS, будут недоступны или приложение может падать

Проверьте, какие разрешения действительно нужны приложению: в настройках выберите Приложения → [имя] → Разрешения и отключите лишние (например, микрофон для игр без голосового чата).

Как управлять и проверять разрешения (шаги)

  1. Через интерфейс:
    • Откройте Настройки → Приложения → Все приложения → выберите приложение → Разрешения.
    • Отключите опасные разрешения, которые не нужны.
  2. Для анализа и отладки (ADB):
    • Список разрешений пакета: adb shell dumpsys package com.example.app | grep permission
    • Проверка статуса конкретного разрешения: pm check-permission com.example.app android.permission.CAMERA
  3. Если приложение запрашивает нестандартный префикс (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, и я подскажу, какие разрешения стоит оставить, а какие — отключить.