Перегляд APK Info

Перевірте декларації пакета Android-додатка (версію, дозволи, компоненти та сертифікати підпису) перед встановленням.

Готово. Перетягніть APK для перевірки.

APK аналізується повністю на вашому пристрої: нічого не завантажується, файл лише читається — ніколи не встановлюється та не запускається.

Поширені запитання

Що можна дізнатися з APK без його встановлення?

Досить багато: назву та версію пакета додатка, необхідні версії Android, усі запитувані дозволи, оголошені екрани й фонові компоненти, типи процесорів для нативного коду та сертифікати, якими його підписано.

Чи може цей інструмент визначити, чи є APK шкідливим ПЗ?

Ні. Будьте скептичними до інструментів, які обіцяють вердикт за швидким скануванням. Тут ви отримуєте факти: дозволи, компоненти, підписантів та хеші. Порівняйте їх із даними розробника та сприймайте несподівані дозволи або іншого підписанта як привід відмовитися.

Які файли підтримуються?

Окремі файли APK розміром до 500 MB. Розділені пакети (XAPK, APKM) та Android App Bundles (.aab) є контейнерами або форматами публікації, а не інсталяційними пакетами, тому замість заплутаного звіту вони відхиляються з чітким повідомленням.

Про що свідчать деталі підпису?

Кожен додаток Android підписано, і сертифікат ідентифікує видавця. Ви бачите схеми підпису пакета (v1, v2, v3), суб'єкта кожного підписанта, термін дії та відбитки MD5, SHA-1 і SHA-256. Два APK з однаковими відбитками походять від одного видавця — довіряти йому чи ні, вирішуєте ви.

Що означає мітка «Dangerous» для дозволу?

Це офіційна класифікація Android: небезпечні дозволи можуть отримати доступ до приватних даних (місцезнаходження, контакти, камера, мікрофон, сховище), тому система запитує користувача перед їх наданням. Ця мітка — не звинувачення; для картографічного додатка запит на геолокацію є нормальним. Вона просто вказує на дозволи, які варто перечитати двічі.

Анатомія пакета APK та принципи його статичного аналізу

Android Application Package (APK) є основним форматом архіву, який використовується операційною системою Android для розповсюдження та встановлення мобільних додатків. За своєю суттю файл APK — це стиснутий ZIP-архів, який містить усі компоненти, необхідні для роботи програми на пристрої.

Для безпечного вивчення вмісту додатка до його встановлення застосовується статичний аналіз. На відміну від динамічного аналізу, який передбачає запуск коду в ізольованому середовищі (пісочниці) для спостереження за його поведінкою, статичний аналіз фокусується на читанні та перевірці задекларованих властивостей, структури файлів та конфігурацій без безпосереднього виконання програми.

Головним джерелом метаданих у будь-якому APK є файл AndroidManifest.xml. Цей файл містить декларації про назву пакета, версію додатка, підтримувані версії операційної системи, запитувані дозволи, а також оголошує всі системні компоненти, які взаємодіють із платформою Android. Окрім маніфесту, структура APK містить файли компільованого коду Java/Kotlin у форматі .dex (Dalvik Executable), ресурси додатка (зображення, інтерфейси), файли активів (assets) та бінарні бібліотеки для різних архітектур процесорів.

Локальна обробка даних у браузері

Інструмент Перегляд APK Info виконує всі операції з читання, хешування та аналізу файлів локально, безпосередньо у веб-браузері користувача. Завдяки використанню технології Web Workers, обробка великих файлів розміром до 500 MB відбувається в ізольованому потоці, що запобігає зависанню інтерфейсу вкладки.

Такий підхід гарантує повну конфіденційність даних:

  • Жоден байт завантаженого файлу не передається на зовнішні сервери.
  • Файл аналізується виключно в оперативній пам'яті пристрою користувача.
  • Додаток ніколи не встановлюється і не запускається в операційній системі під час перевірки.

Під час завантаження файлу інтерфейс відображає поточний стан обробки за допомогою статусів: Читання ‹name›… (читання файлу), Обчислення хешів файлу — ‹percent›% (обчислення криптографічних хешів) та Аналіз пакета… (декодування структури архіву та маніфесту). Після завершення аналізу з'являється статус Звіт готовий.. Користувач може очистити робочу область кнопкою Очистити (статус змінюється на Очищено.) або зберегти отримані дані за допомогою кнопки Завантажити звіт (статус Звіт завантажено.).

Вхідні параметри та обмеження файлів

Інструмент розроблений для роботи з конкретними типами пакетів і має чіткі технічні обмеження:

  • Один файл за раз: Допускається завантаження лише одного файлу. Якщо користувач намагається завантажити кілька файлів одночасно, система обробляє лише перший файл і виводить попередження: «Один файл за раз — перевіряється перший із них.».
  • Обмеження за розміром: Максимальний розмір файлу становить 500 MB. У разі перевищення цього ліміту аналіз блокується з помилкою: «Цей файл перевищує 500 MB і є завеликим для безпечної перевірки вкладкою браузера.».
  • Формат файлу: Приймаються лише файли з розширенням .apk.

При спробі завантажити інші формати пакетів інструмент повертає відповідні помилки:

  • Android App Bundles (.aab): Цей формат використовується розробниками для публікації в Google Play і не є безпосередньо інсталяційним файлом. Система відхиляє його з повідомленням: «Це Android App Bundle (.aab) — формат публікації, а не інсталяційний APK. Перевірте збудований APK.».
  • Розділені пакети (XAPK, APKM): Контейнери, що містять кілька окремих APK-файлів для різних конфігурацій пристроїв, не підтримуються безпосередньо. Виводиться помилка: «Це розділений пакет XAPK — контейнер із кількох APK. Витягніть базовий APK та перевірте його.».
  • Некоректні або пошкоджені файли: Якщо файл не містить структури APK, виводиться повідомлення: «Це не схоже на APK: усередині не знайдено читабельного AndroidManifest.xml.». Пошкоджені або обрізані архіви викликають помилку: «Пакет пошкоджено або обрізано, тому його вміст не вдалося прочитати.». Загальні збої читання супроводжуються текстом: «Файл не вдалося прочитати. Виберіть його знову.» або «Помилка перевірки. Спробуйте інший файл.».

Структура звіту та технічні показники

Звіт інструменту розділений на тематичні секції, які детально описують внутрішній устрій та вимоги аналізованого пакета.

Вимоги («Вимоги»)

Цей розділ визначає сумісність додатка з різними версіями операційної системи Android:

  • «Мінімальний Android»: Мінімальна версія ОС, необхідна для запуску додатка. Відображається у форматі «Android ‹version› (API ‹level›)» або просто «API ‹level›».
  • «Цільовий Android»: Цільова версія API, під яку оптимізовано додаток. Вона визначає поведінку системи безпеки та ліміти доступу до функцій ОС.
  • «макс. SDK ‹n›»: Максимальна версія Android, на якій дозволено запуск додатка (якщо таке обмеження встановлено розробником).

Дозволи («Дозволи»)

Список усіх системних дозволів, які додаток запитує у користувача. Для полегшення аудиту дозволи, які класифікуються операційною системою як такі, що мають доступ до приватних даних користувача або критичних функцій пристрою, позначаються спеціальною міткою «Небезпечні». Дозволи з цією міткою автоматично сортуються та виводяться на початку списку.

Компоненти («Компоненти»)

Усі оголошені в маніфесті системні компоненти групуються за чотирма основними категоріями Android:

  • «Activities»: Екрани інтерфейсу користувача.
  • «Services»: Фонові процеси без графічного інтерфейсу.
  • «Receivers»: Приймачі системних або внутрішніх трансляцій повідомлень.
  • «Providers»: Компоненти для обміну даними між додатками.

Для кожного компонента відображається мітка «експортовано», якщо він доступний для запуску іншими додатками на пристрої. Для контент-провайдерів також виводиться унікальний ідентифікатор доступу (authority) або значення «Немає». Щоб інтерфейс залишався читабельним, у кожній категорії відображається не більше 100 елементів. Якщо кількість компонентів перевищує цей ліміт, додається позначка «ще ‹count›».

Нативний код («Нативний код»)

У цій секції наводяться підтримувані типи архітектур процесорів (Application Binary Interfaces, або ABIs), для яких у пакеті присутні компільовані бібліотеки (наприклад, armeabi-v7a, arm64-v8a, x86, x86_64), а також загальна кількість нативних бібліотек.

Ресурси («Ресурси»)

Статистичні дані про внутрішній вміст пакета:

  • «Щільність екрана»: Підтримувані щільності екранів, для яких оптимізовано графіку.
  • «Файли ресурсів»: Кількість файлів у каталозі ресурсів.
  • «Файли активів»: Кількість файлів у каталозі активів.
  • «Файли коду (.dex)»: Кількість файлів компільованого коду Dalvik.
  • «Файли в пакеті»: Загальна кількість файлів усередині архіву APK.

Підписи («Підписи»)

Android вимагає, щоб кожен встановлений додаток був підписаний сертифікатом розробника. Інструмент витягує метадані сертифікатів X.509 із блоків підпису v1 (PKCS#7) та APK Signing Blocks (v2, v3, v3.1). Для кожного знайденого підписанта («Підписант ‹n›») відображаються такі дані:

  • «Суб'єкт» та «Видано ким».
  • «Серійний номер».
  • «Дійсно з» та «Дійсно до».
  • «Алгоритм підпису» та «Алгоритм ключа».
  • Криптографічні відбитки сертифіката: MD5, SHA-1 та SHA-256.

Якщо пакет не містить цифрового підпису, відображається повідомлення: «Не знайдено впізнаваного блоку підпису — можливо, пакунок не підписано або перепаковано.».

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

Хеші файлу («Хеші файлу»)

Для однозначної ідентифікації самого файлу APK інструмент обчислює його глобальні криптографічні хеші за алгоритмами MD5, SHA-1 та SHA-256. Ці значення дозволяють звірити завантажений файл із публічними базами даних або офіційними релізами розробників.

Часті запитання (FAQ)

Що можна дізнатися з APK без його встановлення?

Досить багато: назву та версію пакета додатка, необхідні версії Android, усі запитувані дозволи, оголошені екрани й фонові компоненти, типи процесорів для нативного коду та сертифікати, якими його підписано.

Чи може цей інструмент визначити, чи є APK шкідливим ПЗ?

Ні. Будьте скептичними до інструментів, які обіцяють вердикт за швидким скануванням. Тут ви отримуєте факти: дозволи, компоненти, підписантів та хеші. Порівняйте їх із даними розробника та сприймайте несподівані дозволи або іншого підписанта як привід відмовитися.

Які файли підтримуються?

Окремі файли APK розміром до 500 MB. Розділені пакети (XAPK, APKM) та Android App Bundles (.aab) є контейнерами або форматами публікації, а не інсталяційними пакетами, тому замість заплутаного звіту вони відхиляються з чітким повідомленням.

Про що свідчать деталі підпису?

Кожен додаток Android підписано, і сертифікат ідентифікує видавця. Ви бачите схеми підпису пакета (v1, v2, v3), суб'єкта кожного підписанта, термін дії та відбитки MD5, SHA-1 і SHA-256. Два APK з однаковими відбитками походять від одного видавця — довіряти йому чи ні, вирішуєте ви.

Що означає мітка «Dangerous» для дозволу?

Це офіційна класифікація Android: небезпечні дозволи можуть отримати доступ до приватних даних (місцезнаходження, контакти, камера, мікрофон, сховище), тому система запитує користувача перед їх наданням. Ця мітка — не звинувачення; для картографічного додатка запит на геолокацію є нормальним. Вона просто вказує на дозволи, які варто перечитати двічі.