Разборка прошивки Android чаще всего нужна, когда требуется извлечь boot.img для получения root через Magisk, достать системные приложения из system.img или изучить структуру разделов конкретного устройства. Прямо «открыть» файл прошивки двойным кликом не получится: образ зашит в специальные форматы, и для каждого из них нужен свой инструмент.
В этой статье разберём, как распаковать прошивку Android на компьютере: от определения типа архива до извлечения содержимого разделов. Материал ориентирован на тех, кто уже уверенно работает с командной строкой, но впервые сталкивается с внутренним устройством прошивки.
Что находится внутри прошивки Android
Прошивка — это не один файл, а набор образов разделов. В зависимости от производителя и способа распространения (OTA-обновление, fastboot-пакет, сервисная прошивка) комплект отличается, но основные компоненты встречаются почти всегда.
- 🧩 boot.img — ядро и ramdisk, именно его патчат для получения root-прав
- 🗂️ system.img — системный раздел с ОС, приложениями и библиотеками
- 🛠️ vendor.img — драйверы и компоненты производителя чипа
- 💾 userdata.img — раздел пользовательских данных (обычно пустой в заводской прошивке)
- 🔄 recovery.img — образ среды восстановления
На современных устройствах со схемой A/B (seamless updates) разделы часто запакованы в единый файл payload.bin, а на устройствах с динамическими разделами system и vendor объединены в super.img. Это определяет, каким способом придётся распаковывать прошивку.
Подготовка: что понадобится перед разборкой
Прежде чем распаковать прошивку андроид, подготовьте рабочее окружение. Большинство инструментов разборки написаны на Python или работают из командной строки, поэтому потребуется компьютер на Windows, Linux или macOS с установленным Python 3.
Также вам понадобится сам файл прошивки именно для вашей модели и региона. Скачивайте его только с официального сайта производителя или из проверенных источников: прошивка от другой ревизии устройства может содержать несовместимые разделы, и извлечённый boot.img окажется непригодным.
⚠️ Внимание: разборка прошивки сама по себе безопасна — вы работаете с копией файлов на ПК. Опасность начинается на этапе заливки изменённых образов обратно в устройство. Не прошивайте модифицированные разделы, не убедившись, что у вас есть способ восстановить оригинал.
☑️ Подготовка к разборке прошивки
Шаг 1. Распаковка архива прошивки
Заводская прошивка обычно распространяется в виде ZIP-архива. Откройте его любым архиватором и посмотрите на содержимое — от этого зависит дальнейший сценарий. Если внутри лежат готовые файлы boot.img, system.img и подобные, вам повезло: можно сразу переходить к разбору разделов.
Если внутри архива находится payload.bin и файлы payload_properties.txt, care_map.pb — это OTA-формат, характерный для устройств с A/B-разделами (многие модели Google Pixel, Xiaomi, OnePlus). Его потребуется распаковать отдельной утилитой.
Устройства на чипах MediaTek часто поставляются с файлом scatter.txt и набором образов для программы SP Flash Tool, а прошивки Samsung — в виде tar-архивов (.tar.md5) с файлами AP, BL, CP, CSC. Формат у каждого производителя свой, универсального распаковщика не существует.
Шаг 2. Извлечение образов из payload.bin
Для распаковки payload.bin используется открытая утилита payload_dumper. Она требует Python 3 и несколько зависимостей, которые ставятся через pip. Порядок действий выглядит так:
pip install -r requirements.txt
python payload_dumper.py payload.bin --out ./extracted
После завершения в папке extracted появятся образы разделов: boot.img, system.img, vendor.img и другие. Процесс может занять заметное время, так как суммарный объём извлекаемых данных — несколько гигабайт.
Альтернатива для тех, кто не хочет возиться с Python, — графические утилиты вроде payload-dumper-go (консольная, но быстрая и без зависимостей) или онлайн-сервисы. С онлайн-вариантами будьте осторожны: загружать многогигабайтный файл на сторонний сервер — не лучшая идея с точки зрения приватности и скорости.
Шаг 3. Разборка super.img и динамических разделов
На устройствах с Android 10 и новее разделы system, vendor и product часто объединены в super.img. Если файл имеет «sparse»-формат, сначала преобразуйте его утилитой simg2img:
simg2img super.img super_raw.img
Затем из полученного образа извлекают отдельные разделы инструментом lpunpack. Оба инструмента входят в состав исходников AOSP и доступны в виде готовых сборок для Linux; для Windows проще использовать WSL или готовые порты.
Шаг 4. Монтирование и просмотр содержимого разделов
После извлечения system.img или vendor.img возникает вопрос: как посмотреть файлы внутри? Здесь снова важен формат. Образы бывают в файловой системе ext4 (монтируются напрямую в Linux) или erofs (read-only формат, который Google продвигает начиная с Android 13).
Для ext4 в Linux достаточно смонтировать образ: sudo mount -o loop system.img /mnt/system. Для erofs потребуется утилита extract.erofs или fsck.erofs с ключом извлечения. В Windows прямого монтирования нет — используйте WSL или специализированные программы для чтения образов.
Разбор boot.img устроен иначе: это не файловая система, а контейнер с ядром и ramdisk. Для него применяют инструменты вроде Android Image Kitchen или magiskboot (утилита из состава Magisk). Они раскладывают образ на компоненты: kernel, ramdisk.cpio, dtb и позволяют собрать всё обратно после правок.
| Файл прошивки | Что внутри | Инструмент разборки |
|---|---|---|
| payload.bin | Все разделы (A/B-устройства) | payload_dumper, payload-dumper-go |
| super.img | system, vendor, product | simg2img + lpunpack |
| system.img (ext4) | Файлы ОС | mount в Linux, DiskInternals |
| system.img (erofs) | Файлы ОС (read-only) | extract.erofs |
| boot.img | Ядро и ramdisk | magiskboot, Android Image Kitchen |
⚠️ Внимание: не редактируйте файлы внутри system-раздела, если планируете потом прошивать образ обратно — на устройствах с проверкой целостности (dm-verity, AVB) изменённый раздел не пройдёт верификацию, и телефон может не загрузиться. Для модификаций безопаснее использовать системный интерфейс Magisk.
Типичные ошибки при разборке прошивки
Чаще всего процесс застревает на несоответствии инструмента формату. Скрипт падает с ошибкой, образ не монтируется, извлечённые файлы пустые — всё это признаки того, что выбран неправильный метод для конкретного типа упаковки.
- ❌ «Invalid magic» при распаковке boot.img — файл может быть зашифрован, сжат или это вообще не boot-образ; проверьте заголовок файла hex-редактором
- ❌ payload_dumper не видит разделы — возможно, payload.bin повреждён при скачивании; сверьте контрольную сумму с указанной на странице загрузки
- ❌ system.img не монтируется — скорее всего, это erofs или sparse-формат, а не чистый ext4
- ❌ Нехватка места на диске — распакованные разделы занимают в разы больше сжатого архива прошивки
Отдельная категория проблем — прошивки с шифрованием. Некоторые производители (например, в сервисных пакетах для определённых линеек) шифруют образы, и без ключей их разобрать нельзя. Если hex-редактор показывает в начале файла хаотичные данные вместо известных сигнатур (ANDROID!, 0x3A 0xFF 0x26 ED для sparse и т.п.), файл, вероятно, зашифрован, и стандартные инструменты тут бессильны.
Как определить формат образа по сигнатуре
Откройте файл в hex-редакторе и посмотрите первые байты. «ANDROID!» в начале — boot.img. Магическое число 0xED26FF3A (байты 3A FF 26 ED) — sparse-образ Android. Сигнатура ext4 находится по смещению 0x438 (байты 53 EF). EROFS имеет свой magic по смещению 1024. Это быстрый способ понять, с чем вы имеете дело, до запуска инструментов.
Что делать с разобранной прошивкой дальше
Цель разборки определяет следующий шаг. Если вы извлекали boot.img ради root — пропатчьте его в приложении Magisk на самом устройстве и прошейте результат через fastboot flash boot magisk_patched.img. Перед этим обязательно убедитесь, что загрузчик разблокирован.
Если задача — изучение системных приложений, файлы .apk из раздела system можно анализировать напрямую: декомпилировать через apktool или jadx. Для сборки кастомной прошивки потребуется уже полноценная среда разработки AOSP — это отдельная большая тема, выходящая за рамки простой распаковки.
⚠️ Внимание: разблокировка загрузчика на большинстве устройств стирает все пользовательские данные и может лишить гарантии. Выполняйте её до любых экспериментов с прошивкой разделов и заранее сделайте резервную копию важных данных.
Часто задаваемые вопросы
Можно ли разобрать прошивку Android без компьютера?
Полноценно — нет. Инструменты вроде payload_dumper, simg2img и lpunpack рассчитаны на ПК. На самом Android-устройстве доступны лишь отдельные операции через терминальные приложения, но это неудобно и требует root.
Чем открыть файл payload.bin на Windows?
Используйте payload_dumper (нужен Python 3) или консольную утилиту payload-dumper-go, которая не требует зависимостей. Обычные архиваторы формат payload.bin не поддерживают — это не ZIP и не TAR.
Безопасно ли распаковывать прошивку — не сломается ли телефон?
Разборка происходит на компьютере с копией файлов, устройство при этом вообще не участвует. Риск появляется только при прошивке изменённых образов обратно в телефон.
Почему извлечённый boot.img не подходит для Magisk?
Возможные причины: прошивка скачана для другой версии ПО, чем установлена на устройстве, либо устройство использует схему init_boot (на Android 13 и новее у ряда моделей ramdisk вынесен в отдельный раздел init_boot.img). Сверьте версию прошивки и наличие раздела init_boot в распакованном наборе.
Как собрать прошивку обратно после изменений?
Для boot.img используется та же утилита magiskboot (команда repack) или Android Image Kitchen. Для системных разделов обратная сборка сложнее: нужны mkfs.erofs или make_ext4fs с корректными параметрами размера и контекстов SELinux, иначе образ не прошьётся или не загрузится.