APK-файл по своей сути представляет собой обычный ZIP-архив, поэтому распаковать его на компьютере можно даже без специальных программ — достаточно переименовать расширение и открыть любым архиватором. Однако простое извлечение покажет лишь часть содержимого: ресурсы и библиотеки, но не читаемый исходный код.
В зависимости от цели — посмотреть иконки, изучить манифест, разобрать код или проверить файл на безопасность — потребуются разные инструменты. Ниже разберём все рабочие способы от самого простого до продвинутого, с пошаговыми инструкциями для Windows.
Что находится внутри APK файла
Прежде чем распаковывать, полезно понимать структуру пакета. APK (Android Package Kit) — это подписанный архив, в котором система Android хранит всё необходимое для установки приложения. При распаковке вы увидите типовой набор файлов и папок.
- 📄 AndroidManifest.xml — главный файл с описанием разрешений, активностей и компонентов приложения (в бинарном виде);
- 🖼️ res/ — ресурсы: иконки, изображения, layouts интерфейса, строки;
- ⚙️ classes.dex — скомпилированный код приложения в формате Dalvik Executable;
- 📚 lib/ — нативные библиотеки под разные архитектуры процессоров (arm, x86);
- 🔐 META-INF/ — цифровые подписи и сертификаты разработчика;
- 🎵 assets/ — произвольные файлы: шрифты, звуки, базы данных.
Главный нюанс: AndroidManifest.xml и файлы ресурсов внутри APK хранятся в бинарном (скомпилированном) виде, поэтому при обычной распаковке архиватором они откроются как набор нечитаемых символов. Для их просмотра нужны специальные декомпиляторы, о которых пойдёт речь ниже.
Способ 1: Распаковка через архиватор (7-Zip, WinRAR)
Самый быстрый метод, если вам нужно просто достать картинки, звуки или посмотреть общую структуру пакета. Подойдёт 7-Zip, WinRAR или встроенный архиватор Windows 11.
Порядок действий для 7-Zip:
- 🔹 Кликните правой кнопкой по APK-файлу и выберите в контекстном меню
7-Zip → Открыть архив— переименовывать файл не обязательно; - 🔹 Либо смените расширение с
.apkна.zipи откройте двойным кликом; - 🔹 Нажмите «Извлечь» и укажите папку назначения.
После извлечения вы получите полное дерево файлов. Изображения из папок res/drawable и медиафайлы из assets откроются без проблем. А вот classes.dex и бинарный манифест останутся нечитаемыми — для них нужен следующий способ.
Способ 2: Полная декомпиляция через apktool
Когда требуется заглянуть глубже — прочитать манифест, разобрать ресурсы и получить код в виде smali — стандартным инструментом является apktool. Это бесплатная консольная утилита, для работы которой понадобится установленная Java (JRE/JDK).
Установка и запуск выглядят так. Скачайте apktool.jar с официального репозитория проекта (iBotPeaches на GitHub), поместите его в одну папку с целевым APK и выполните в командной строке:
java -jar apktool.jar d app.apk -o output_folder
Здесь d — команда декомпиляции, а -o задаёт папку для результатов. После завершения в output_folder появятся читаемый AndroidManifest.xml, распакованные ресурсы в XML-формате и код в папке smali.
☑️ Подготовка к декомпиляции через apktool
⚠️ Внимание: декомпиляция чужих приложений может нарушать лицензионное соглашение и авторские права разработчика. Используйте эти методы для анализа собственных приложений, обучения или проверки безопасности файлов, которые вы собираетесь устанавливать.
Способ 3: Просмотр Java-кода через jadx
Код в формате smali читать неудобно — это низкоуровневое представление байткода. Утилита jadx решает эту задачу: она конвертирует classes.dex обратно в приближённый к оригиналу Java-код и показывает его в графическом интерфейсе.
Достаточно скачать релиз jadx (версия с GUI не требует установки), запустить jadx-gui и перетащить APK-файл в окно программы. Слева отобразится дерево пакетов и классов, справа — декомпилированный код с подсветкой синтаксиса и поиском по строкам.
Стоит учитывать ограничение: если приложение защищено обфускацией (например, через ProGuard или R8), имена классов и методов будут заменены на бессмысленные комбинации букв, и анализ заметно усложнится. Это нормальная практика для коммерческих приложений.
Сравнение инструментов для распаковки APK
Выбор утилиты зависит от задачи. Сводная таблица поможет определиться быстрее:
| Инструмент | Что извлекает | Интерфейс | Сложность |
|---|---|---|---|
| 7-Zip / WinRAR | Файлы «как есть»: картинки, звуки, бинарный манифест | Графический | Минимальная |
| apktool | Читаемый манифест, ресурсы XML, код smali | Командная строка | Средняя |
| jadx | Декомпилированный Java-код, ресурсы | Графический / CLI | Средняя |
| APK Easy Tool | Оболочка над apktool: декомпиляция и сборка | Графический | Низкая |
| Онлайн-декомпиляторы | Базовый просмотр структуры и кода | Браузер | Минимальная |
Онлайн-сервисы и альтернативные варианты
Если устанавливать программы не хочется, существуют браузерные сервисы для декомпиляции APK: вы загружаете файл, а сервис возвращает структуру и код. Такой подход удобен для разового анализа небольших файлов.
⚠️ Внимание: не загружайте в онлайн-сервисы APK с конфиденциальными данными, корпоративные приложения или файлы, к которым у вас нет прав. Содержимое файла попадает на чужой сервер, и дальнейшая его судьба вам неизвестна.
Ещё один вариант — среда Android Studio. В ней есть встроенная функция Build → Analyze APK, которая показывает состав пакета, размер компонентов и содержимое DEX-файлов. Способ ориентирован на разработчиков, но подходит и для быстрой оценки того, что «весит» приложение.
Как собрать APK обратно после изменений
Apktool умеет не только распаковывать, но и собирать пакет заново: java -jar apktool.jar b output_folder -o modified.apk. Однако пересобранный APK теряет оригинальную подпись — его нужно подписать заново собственным ключом (например, через apksigner или jarsigner). Без валидной подписи Android откажется устанавливать приложение, а поверх оригинальной версии такой пакет всё равно не встанет из-за несовпадения сертификатов.
Типичные проблемы при распаковке и их решение
Не всегда процесс проходит гладко. Разберём частые ситуации, с которыми сталкиваются пользователи.
Архиватор сообщает, что файл повреждён. Возможная причина — неполная загрузка APK или то, что это вовсе не APK, а, например, XAPK или APKM (форматы с дополнительными установочными пакетами). Проверьте размер файла и источник, откуда он скачан.
Apktool выдаёт ошибку при декомпиляции. Часто дело в устаревшей версии утилиты: новые приложения собираются под свежие версии Android SDK, и старый apktool их не понимает. Обновите jar-файл до последнего релиза. Также убедитесь, что путь к файлу не содержит кириллицы.
После распаковки нет папки res или assets. Это нормально для некоторых приложений: часть ресурсов может подгружаться из сети, а минималистичные программы обходятся без assets вовсе.
⚠️ Внимание: скачивайте apktool, jadx и другие утилиты только с официальных страниц проектов. Сторонние «сборки» декомпиляторов нередко содержат вредоносный код — анализируя чужие APK на безопасность, легко заразить собственный компьютер.
Часто задаваемые вопросы
Можно ли распаковать APK без программ, прямо в Windows?
Частично да: Windows 11 умеет открывать ZIP-архивы штатными средствами, поэтому достаточно переименовать файл из .apk в .zip и открыть через Проводник. Но для чтения манифеста и кода всё равно понадобятся apktool или jadx.
Получится ли достать полный исходный код приложения?
В исходном виде — нет. Декомпиляторы восстанавливают приближённую версию кода: без комментариев, оригинальных имён переменных и структуры проекта. При обфускации читаемость снижается ещё сильнее.
Чем открыть файл classes.dex после распаковки?
Напрямую — ничем, это бинарный байткод для виртуальной машины Android. Используйте jadx для конвертации в Java-код или apktool для получения smali-представления.
Можно ли изменить APK и установить его обратно на телефон?
Технически да: распаковать через apktool, внести правки, собрать командой b и подписать новым ключом. Но установить такой пакет поверх оригинального не выйдет из-за несовпадения подписей — придётся сначала удалить официальную версию.
Это законно — распаковывать чужие APK?
Анализ файла на собственном компьютере сам по себе обычно не является нарушением, однако модификация, распространение изменённых версий и извлечение защищённых ресурсов могут нарушать авторские права и условия лицензионного соглашения. Для коммерческого использования полученных материалов требуется разрешение правообладателя.