Як переглянути дозволи додатків Android перед встановленням APK

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

Коли ви встановлюєте програму з магазину Google Play, Android показує спрощену інформацію про те, до чого програма має доступ. Завантажте APK із стороннього джерела, не пов’язаного з Play, і у вас немає такої безпеки, якщо ви самі не прочитаєте маніфест. «Чи справді програмі для фонових малюнків потрібні SMS і доступ до мікрофона?» — це саме те запитання, на яке допоможе вам відповісти цей посібник.

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

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

Навіщо перевіряти дозволи?

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

Як перевірити будь-який файл APK (онлайн)

Наш Інструмент APK Info читає маніфест вашого файлу повністю у вашому браузері; файл ніколи не завантажується на сервер і жоден код не виконується. Ось як ним користуватися:

Процес:

  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. Використовуйте такий інструмент, як AXMLPrinter, щоб перетворити його на читабельний текст.
  4. Шукайте теги, що починаються з <uses-permission>.

Рекомендація: набагато швидше використовувати наш онлайн-інструмент, який миттєво декодує це для вас.

Перевірте свої додатки зараз

Точно знайте, чого вимагають ваші програми. Без секретів, без ризиків.

Перевірте дозволи APK

Що насправді зберігається в AndroidManifest.xml

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

Рівні захисту дозволів: шпаргалка

Android призначає кожному дозволу «рівень захисту». Знання того, до якого рівня належить запит, говорить вам, наскільки серйозно до нього ставиться ОС.

Рівень захисту Досвід користувача Приклади
нормально Надається мовчки під час встановлення. Немає підказок. ІНТЕРНЕТ, ВІБРАЦІЯ, ACCESS_NETWORK_STATE, WAKE_LOCK
небезпечний Підказка під час виконання під час першого використання функції. Можна відкликати в налаштуваннях. CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
підпис Надається лише програмам, підписаним тим самим сертифікатом, що й програма, що надає дозвіл, або ОС. BIND_VPN_SERVICE, INSTALL_PACKAGES (лише для системи)
підпис|привілей Доступно лише для попередньо встановлених програм у каталозі priv-app образу системи. MANAGE_USERS, READ_LOGS (системні дозволи)
програма / роль Для ввімкнення потрібен окремий потік налаштувань. SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (спеціальний доступ)

Що насправді означають «приховані» дозволи

Поширеною помилкою є те, що деякі дозволи є секретними. Це не так: кожен дозвіл, який може використовувати програма, має бути оголошений у AndroidManifest.xml, і ОС відмовляється надавати будь-який дозвіл, не вказаний у цьому списку. Те, що люди зазвичай розуміють під «прихованими», це одне з двох речей:

У будь-якому випадку відповідь одна: прочитайте маніфест, не довіряйте опису Play Store самому по собі.

Спрацьований приклад: аудит справжнього APK

Припустімо, у папці завантажень є example.apk. Ось точний робочий процес:

  1. Відкрийте Інструмент APK Info у своєму браузері.
  2. Опустіть APK в область завантаження. Обробка відбувається локально; файл не залишає ваш пристрій.
  3. Прочитайте розділ Дозволи. Кожен запис показує ім’я константи (android.permission.READ_CONTACTS і простий опис того, що він дозволяє).
  4. Порівняйте список із категорією програми. Приблизно очікуйте:
    • Програми камери: CAMERA, RECORD_AUDIO (для відео), STORAGE/MEDIA запис
    • Програми обміну повідомленнями: ІНТЕРНЕТ, READ_CONTACTS, SEND_SMS (тільки якщо на основі SMS), RECORD_AUDIO (для голосових нотаток), CAMERA (для надсилання фотографій)
    • Ігри: ІНТЕРНЕТ, іноді RECORD_AUDIO (для голосового чату в грі), дозволи, пов’язані з білінгом; рідко щось інше
    • Службові програми (калькулятор, ліхтарик, погода): ІНТЕРНЕТ (для реклами), 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?

так В Android 6.0 і новіших версіях ви можете перейти до Налаштування > Програми > [Назва програми] > Дозволи, щоб увімкнути або вимкнути окремі небезпечні дозволи.

Чи мають файли XAPK різні дозволи?

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

Чому кожна програма запитує «Доступ до мережі»?

Майже всім програмам потрібен доступ до Інтернету для аналітики, звітів про помилки або реклами. Хоча це поширене явище, це також спосіб надсилання викрадених даних на сервер хакера.

Перевірка дозволів маніфесту перед натисканням «Встановити».

Ви не можете судити про те, чого не бачите. Витрачати десять секунд на переглянути дозволи APK перед тим, як завантажувати збоку, це різниця між знанням того, чого може досягти додаток, і простою надією, що він поведеться. Спочатку прочитайте список, а потім встановіть.

Розроблено та задокументовано Mst Shaefale Провідний розробник і архітектор пакетів Android • Перевірено на Android 12–15

Mst Shaefale підтримує злиття XAPK/APKS на стороні клієнта, аналізатор бінарних маніфестів та інструменти підписання APK v1+v2 у xapktoapk.com. Помітили застарілу команду чи зміну ОС? Надіслати редакційну примітку.