Скачали .apk не из Google Play — может, с форума, с альтернативного маркета или вам прислали файл на почту — и теперь хочется понять, не заберёт ли приложение больше доступа, чем ему нужно. Проверить разрешения в манифесте проще, чем кажется, и для этого не обязательно быть разработчиком. Разберёмся, как это сделать на практике, на что смотреть и какие разрешения реально должны насторожить.
- Зачем вообще смотреть в манифест
- Как вытащить манифест из .apk
- Способ 1: APKTool (надёжный и бесплатный)
- Способ 2: aapt / aapt2 (для тех, кто не хочет декомпилировать всё)
- Способ 3: Онлайн-сервисы
- Способ 4: Через Android без компьютера
- Какие разрешения реально должны насторожить
- Красные флаги — максимальный уровень опасности
- Жёлтый флаг — зависит от контекста
- Сравнение: нормальные и подозрительные сочетания разрешений
- Как принять решение: ставить или нет
- Частые ошибки при проверке
- Что делать, если нашли подозрительные разрешения
- Инструменты, которые стоит держать под рукой
- Итог
Зачем вообще смотреть в манифест
В каждом Android-приложении есть файл AndroidManifest.xml. Это своего рода паспорт приложения: там перечислены все разрешения, которые программа запрашивает у системы. Без этого файла приложение просто не установится — система его не пропустит.
Проблема в том, что разработчик может запросить доступ к чему угодно: камере, микрофону, контактам, отправке SMS, чтению файлов. И если обычный фонарик просит доступ к вашим звонкам — это повод задуматься. Проверка манифеста позволяет увидеть полную картину до того, как вы нажмёте «Установить».
Как вытащить манифест из .apk
Файл .apk — это обычный архив. Внутри него лежит куча файлов, и среди них нужный нам AndroidManifest.xml. Но вот подвох: в собранном приложении манифест находится в бинарном формате — просто открыть его текстовым редактором не получится. Нужно либо декомпилировать, либо использовать специальные инструменты.
Способ 1: APKTool (надёжный и бесплатный)
APKTool — это утилита с открытым исходным кодом, которая умеет декомпилировать .apk-файлы обратно в читаемый вид. Работает на Windows, macOS и Linux.
- Скачайте APKTool с официального сайта (ibotpeaches.github.io/Apktool).
- Установите Java, если она ещё не стоит — APKTool работает через неё.
- Откройте терминал или командную строку в папке с .apk-файлом.
- Выполните команду:
apktool d имяфайла.apk - В результате появится папка с декомпилированным приложением. Внутри — файл
AndroidManifest.xml, который уже можно открыть в любом текстовом редакторе.
Этот способ даёт самый полный результат: вы видите не только разрешения, но и активности, сервисы, приёмники — всю структуру приложения.
Способ 2: aapt / aapt2 (для тех, кто не хочет декомпилировать всё)
Если у вас есть Android SDK или вы готовы достать оттуда утилиту aapt, можно посмотреть разрешения без полной распаковки:
aapt dump permissions имяфайла.apk
Выведет список всех разрешений столбиком. Быстро, без лишних файлов на диске. Минус — не покажет контекст, в котором используется каждое разрешение.
Способ 3: Онлайн-сервисы
Есть сайты, куда загружаете .apk и получаете отчёт — например, VirusTotal. Он покажет не только разрешения, но и проверит файл по базам антивирусов. Удобно, если не хотите ничего ставить на компьютер. Но помните: вы загружаете файл на сторонний сервер, поэтому для конфиденциальных приложений этот способ не подходит.
Способ 4: Через Android без компьютера
Если приложение уже установлено на телефон, можно использовать приложения вроде App Inspector или APK Permission Viewer. Они показывают манифест в читаемом виде прямо на устройстве. Не так глубоко, как APKTool, но для быстрой проверки — вполне.
Какие разрешения реально должны насторожить
Не все разрешения одинаково опасны. Многие из них нужны для нормальной работы. Но есть те, которые в сочетании с подозрительным приложением — тревожный сигнал.
Красные флаги — максимальный уровень опасности
android.permission.SEND_SMS— приложение может отправлять SMS. Легитимно нужно мессенджерам, банковским приложениям. Если это игра или калькулятор — что-то не так.android.permission.CALL_PHONE— совершение звонков без вашего подтверждения. Может использоваться для скрытых звонков на платные номера.android.permission.READ_CONTACTS+android.permission.READ_SMS— вместе дают полный доступ к вашей адресной книге и переписке. Для приложений-шпионов это стандартный набор.android.permission.ACCESS_FINE_LOCATION— точное местоположение. Нужно картам и навигаторам, но если его запрашивает текстовый редактор, зачем?android.permission.RECORD_AUDIO— доступ к микрофону. Опасно, если приложение работает в фоне и может записывать звук без вашего ведома.android.permission.SYSTEM_ALERT_WINDOW— рисовать поверх других приложений. Используется для фишинга: можно нарисовать ложную форму ввода поверх настоящего приложения.android.permission.BIND_ACCESSIBILITY_SERVICE— доступ к специальным возможностям. Это мощный инструмент, который в руках вредоносного приложения позволяет читать экран, нажимать кнопки и по сути управлять устройством.
Жёлтый флаг — зависит от контекста
android.permission.READ_EXTERNAL_STORAGE— чтение файлов. Нужно многим приложениям, но в паре с другими подозрительными разрешениями усиливает риск.android.permission.CAMERA— доступ к камере. Закономерен для фото-приложений и видеозвонков, но не для игры без каких-либо функций съёмки.android.permission.RECEIVE_BOOT_COMPLETED— автозапуск после перезагрузки. Нужно мессенджерам и приложениям для фоновой работы, но вредоносное ПО тоже любит эту возможность.android.permission.INTERNET— доступ в интернет. Сейчас просят почти все приложения, но если приложение без сетевых функций его запрашивает — возможно, оно отправляет куда-то ваши данные.
Сравнение: нормальные и подозрительные сочетания разрешений
| Тип приложения | Ожидаемые разрешения | Подозрительные дополнения | Уровень риска |
|---|---|---|---|
| Фонарик | CAMERA (для вспышки) | READ_CONTACTS, SEND_SMS, RECORD_AUDIO | Высокий |
| Мессенджер | INTERNET, RECORD_AUDIO, CAMERA, READ_CONTACTS | SEND_SMS, CALL_PHONE, BIND_ACCESSIBILITY_SERVICE | Средний-высокий |
| Банковское приложение | INTERNET, CALL_PHONE (для подтверждения), CAMERA (сканирование документов) | READ_SMS (допустимо для автоподстановки кода), RECORD_AUDIO, BIND_ACCESSIBILITY_SERVICE | Средний |
| Игра | INTERNET, VIBRATE | READ_CONTACTS, SEND_SMS, ACCESS_FINE_LOCATION, RECORD_AUDIO | Высокий |
| Фоторедактор | CAMERA, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE | SEND_SMS, READ_CONTACTS, BIND_ACCESSIBILITY_SERVICE | Высокий |
Как принять решение: ставить или нет
Вот простой алгоритм, который поможет не утонуть в списках разрешений и принять решение:
- Сопоставьте функционал с разрешениями. Фонарику не нужны контакты. Игре не нужна отправка SMS. Если разрешение не объясняется логикой приложения — это красный флаг.
- Оцените источник. Приложение из Google Play проходит автоматическую проверку. Приложение с неизвестного сайта — нет. Чем менее надёжен источник, тем строже нужно фильтровать.
- Посмотрите на количество. Если приложение запрашивает 15+ разрешений — это уже много, особенно если функционал простой.
- Проверьте сочетания. Одно разрешение может быть безобидным, но комбинация READ_CONTACTS + SEND_SMS + INTERNET — классический набор для отправки ваших данных на удалённый сервер.
- Загуглите сомнительные разрешения. Если не уверены, зачем приложению
SYSTEM_ALERT_WINDOW— поищите в интернете. Возможно, это известная уязвимость.
Частые ошибки при проверке
- Путать разрешения с функциями приложения. Разрешение — это то, что приложение может делать. Что оно делает на самом деле — другой вопрос. Манифест не покажет намерения разработчика, только потенциал.
- Игнорировать разрешения только потому, что «все так делают». Да, многие приложения запрашивают больше нужного. Но это не делает практику безопасной.
- Слепо доверять рейтингу в магазине. Высокий рейтинг и миллионы установок не гарантируют безопасность. Вредоносные приложения часто набирают популярность до того, как их обнаружат.
- Не обращать внимания на обновления. Приложение могло быть чистым при первой установке, но в обновлении добавили новые разрешения. Стоит проверять манифест и после обновлений.
- Полагаться только на автоматическую проверку антивируса. Антивирус может не заметить подозрительные разрешения — это не вирус в классическом понимании, а легитимный функционал, использованный во вред.
Что делать, если нашли подозрительные разрешения
Нашли что-то, что не вяжется с функционалом приложения? Вот варианты:
- Не устанавливайте. Самый простой и надёжный вариант. Если есть сомнения — не ставьте.
- Поищите альтернативу. Скорее всего, есть другое приложение с таким же функционалом, но с адекватным набором разрешений.
- Установите в песочницу. На некоторых устройствах есть функция «защищённая папка» или рабочий профиль. Там приложение будет изолировано от основных данных.
- Используйте менеджер разрешений. Android позволяет выборочно отключать разрешения после установки. Если приложение всё-таки нужно, но просит лишнее — заберите ненужные права в настройках.
- Сообщите о подозрительном приложении. Если нашли в магазине — используйте кнопку «Пожаловаться». Так вы поможете другим пользователям.
Инструменты, которые стоит держать под рукой
- APKTool — для полной декомпиляции и анализа манифеста.
- VirusTotal — быстрая онлайн-проверка файла по десяткам антивирусов.
- App Inspector — просмотр информации об установленных приложениях прямо на Android.
- Exodus Privacy — показывает, какие трекеры и разрешения есть в приложении. Удобно для быстрой оценки.
- jadx — декомпилятор Java, если нужно посмотреть не только манифест, но и исходный код.
Итог
Проверка разрешений в манифесте .apk — это не удел параноиков, а базовая гигиена безопасности. Особенно когда вы имеете дело с файлами из непроверенных источников. Алгоритм простой: вытащите манифест через APKTool или онлайн-сервис, посмотрите список разрешений, сопоставьте с функционалом приложения. Если что-то не логично — не устанавливайте или минимизируйте доступ через настройки системы.
Главное правило: приложение должно запрашироваться ровно столько доступа, сколько нужно для его работы. Ни больше, ни меньше. Если видите перекос в любую сторону — это повод остановиться и подумать.
