Как просмотреть разрешения приложения Android перед установкой APK

A smartphone showing a list of app permissions with a magnifying glass

Когда вы устанавливаете приложение из Google Play Store, Android отображает упрощенную сводку того, к чему приложение может получить доступ. Загрузите APK из источника, не связанного с Play, и у вас не будет такой системы безопасности, если вы сами не прочитаете манифест. «Действительно ли приложению с обоями нужен доступ к SMS и микрофону?» — именно на такие вопросы поможет ответить это руководство.

Далее следует тот же рабочий процесс, который наша команда использует при проверке незнакомого APK: откройте его, прочитайте записи uses-permission, декодируйте уровни защиты и сравните, какое приложение говорит ему нужно, с тем, что обычно требует его категория. Наш онлайн APK Информационный инструмент выполняет декодирование двоичного XML-файла за вас, поэтому весь процесс занимает около десяти секунд.

Время чтения: ~9 минут. Необходимые инструменты: браузер; необязательно apksigner и aapt2 из Android SDK, если вы хотите выполнить те же проверки с терминала. Что вы сможете сделать в конце: прочтите полный список разрешений любого APK, найдите четыре или пять «важных» запросов, которые почти всегда указывают на проблемы, и решите, следует ли устанавливать их до установки, а не после.

Зачем беспокоиться об аудите разрешений?

Злоумышленники берут популярные бесплатные приложения, изменяют их и перевыпускают на сторонних сайтах. Хотя приложение может выглядеть и работать нормально, его скрытый код может копировать ваш список контактов или записывать фоновый звук. Просматривая разрешения предварительная установка, вы можете обнаружить эти красные флажки «ползучести разрешений».

Как проверить любой APK-файл (онлайн)

Наш Инструмент информации об APK полностью считывает манифест вашего файла в вашем браузере; файл никогда не загружается на сервер, и никакой код не выполняется. Вот как его использовать:

Процесс:

  1. Перейдите в Страница информации об APK.
  2. Выберите файл .apk.
  3. Подождите завершения анализа (обычно 5 секунд).
  4. Прокрутите вниз до Раздел разрешений.
  5. Ищите флаги высокого риска, такие как: READ_SMS, PROCESS_OUTGOING_CALLS или ACCESS_FINE_LOCATION.

Список разрешений, отмеченных красным флажком

Если приложение Калькулятор или фонарик запрашивает READ_CONTACTS или RECORD_AUDIO, немедленно удалите файл. У этих приложений нет законных оснований хранить эти данные.

Понимание уровней разрешений Android

Не все разрешения одинаковы. Android делит их на три уровня:

Ручной метод (с использованием программы просмотра ZIP)

Если у вас есть технические навыки, вы можете проверить разрешения самостоятельно:

  1. Переименуйте app.apk в app.zip и откройте его.
  2. Найдите AndroidManifest.xml. (Примечание: он имеет двоичный формат и в текстовом редакторе будет выглядеть как тарабарщина).
  3. Используйте такой инструмент, как AXMLПринтер, чтобы преобразовать его в читаемый текст.
  4. Найдите теги, начинающиеся с <uses-permission>.

Рекомендация: Гораздо быстрее использовать наш онлайн-инструмент, который мгновенно декодирует это для вас.

Проведите аудит своих приложений прямо сейчас

Точно знайте, что запрашивают ваши приложения. Никаких секретов, никаких рисков.

Проверьте разрешения APK

Что на самом деле хранится в AndroidManifest.xml

Манифест — это главный источник правды о каждом разрешении, компоненте и функции, которые объявляет приложение. Внутри APK этот файл хранится в формате бинарного XML, а не обычного текста, как в исходном коде, поэтому его нельзя прочитать в простом текстовом редакторе. Наш инструмент APK Info декодирует бинарный XML и наглядно показывает все важные теги. Наиболее важные из них:

Уровни защиты разрешений: шпаргалка

Android назначает каждому разрешению «уровень защиты». Знание того, к какому уровню принадлежит запрос, говорит о том, насколько серьезно ОС отнесется к нему.

Уровень защиты Пользовательский опыт Примеры
нормальный Предоставляется автоматически во время установки. Нет подсказки. ИНТЕРНЕТ, ВИБРАЦИЯ, ACCESS_NETWORK_STATE, WAKE_LOCK
опасный Запрос времени выполнения при первом использовании функции. Отзывной в настройках. КАМЕРА, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
подпись Предоставляется только приложениям, подписанным тем же сертификатом, что и предоставляющее приложение или ОС. BIND_VPN_SERVICE, INSTALL_PACKAGES (только для системы)
подпись|привилегированный Доступно только для предустановленных приложений в каталоге priv-app образа системы. MANAGE_USERS, ЧТЕНИЕ_ЖУРНОВ
приложение/роль Для включения требуется отдельный поток настроек. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (специальный доступ)

Что на самом деле означают «скрытые» разрешения

Распространенным заблуждением является то, что некоторые разрешения являются секретными. Это не так: каждое разрешение, которое может использовать приложение, должно быть объявлено в AndroidManifest.xml, и ОС отказывается предоставить любое разрешение, не указанное там. Под «скрытым» люди обычно подразумевают одно из двух:

В любом случае ответ один и тот же: читайте манифест, не доверяйте описанию Play Store самому по себе.

Рабочий пример: аудит реального APK

Предположим, у вас есть example.apk в папке «Загрузки». Вот точный рабочий процесс:

  1. Откройте Инструмент информации об APK в своем браузере.
  2. Перетащите APK в область загрузки. Обработка происходит локально; файл не покидает ваше устройство.
  3. Прочтите раздел Разрешения. В каждой записи указано имя константы (android.permission.READ_CONTACTS и понятное описание того, что она позволяет).
  4. Сравните список с категорией приложения. Грубо говоря, ожидайте:
    • Приложения камеры: CAMERA, RECORD_AUDIO (для видео), STORAGE/MEDIA запись
    • Приложения для обмена сообщениями: INTERNET, READ_CONTACTS, SEND_SMS (только если на основе SMS), RECORD_AUDIO (для голосовых заметок), CAMERA (для отправки фотографий)
    • Игры: ИНТЕРНЕТ, иногда RECORD_AUDIO (для внутриигрового голосового чата), разрешения, связанные с выставлением счетов; редко что-нибудь еще
    • Служебные приложения (калькулятор, фонарик, погода): INTERNET (для рекламы), ACCESS_NETWORK_STATE, возможно LOCATION (только погода). Все, что сверх этого, подозрительно.
  5. Если что-то в списке не соответствует категории, не устанавливайте. Нет веской причины, по которой калькулятору нужен доступ по SMS.

Та же логика применяется независимо от того, является ли файл APK, XAPK (где мы читаем внутренний базовый APK) или пакетом APKS (где мы читаем манифест каждого разделения).

Делаем это из командной строки

Если вы предпочитаете терминальный маршрут, Android SDK включает aapt2, который выгружает манифест из любого APK в виде простого XML:

aapt2 dump badging example.apk | grep "uses-permission"

Или используйте apksigner для одновременной проверки сертификата подписи:

apksigner verify --print-certs example.apk

Инструмент браузера делает то же самое для пользователей, которые предпочитают не устанавливать SDK только для проверки одного файла.

Часто задаваемые вопросы (FAQ)

Могу ли я отказать в разрешении после установки APK?

Да. On Android 6.0 and higher, you can go to Настройки > Приложения > [Имя приложения] > Разрешения to toggle individual dangerous permissions on or off.

Имеют ли файлы XAPK разные разрешения?

XAPK содержит один или несколько APK. Каждый APK внутри имеет свой собственный манифест. Наш инструмент проанализирует Основной APK в комплекте, чтобы показать вам соответствующие разрешения.

Почему каждое приложение запрашивает «Доступ к сети»?

Почти всем приложениям требуется доступ к Интернету для аналитики, отчетов об ошибках или рекламы. Хотя это и распространенный способ, украденные данные также передаются на сервер хакера.

Проверка разрешений манифеста перед нажатием «Установить»

Нельзя судить о том, чего не видишь. Потратить десять секунд на просмотреть разрешения APK, прежде чем загружать его, — это разница между знанием того, чего может достичь приложение, и простой надеждой на то, что оно будет вести себя хорошо. Сначала прочитайте список, а затем установите.

Разработано и задокументировано Мстом Шафале Ведущий разработчик и архитектор пакетов Android • Проверено на Android 12–15.

Мст Шаефале поддерживает клиентское слияние XAPK/APKS, анализатор двоичных манифестов и инструменты подписи APK v1+v2 по адресу xapktoapk.com. Обнаружили устаревшую команду или изменение ОС? Отправить редакционную заметку.