Ошибка вида «invalid sparse file format at header magic» при попытке распаковать system.img — самый частый симптом, с которым сталкиваются при разборе прошивки Android: файл оказывается в формате sparse image, а не обычным образом ext4, и стандартные архиваторы с ним не справляются. Распаковка IMG-файлов требуется для извлечения системных приложений, модификации прошивки, поиска данных внутри раздела или подготовки к созданию кастомной сборки.
Одного универсального способа нет: содержимое зависит от того, какой именно образ вы держите в руках — boot.img, system.img, vendor.img или payload.bin из OTA-обновления. Ниже разберём, как определить тип файла и какие инструменты использовать в каждом случае.
Какие IMG-файлы бывают в прошивках Android
Прошивка Android — это набор образов разделов, и каждый из них устроен по-своему. Прежде чем распаковывать, нужно понять, с чем вы работаете: от этого зависит выбор инструмента.
- 🧩 system.img — образ системного раздела с ОС, обычно в формате ext4 или sparse (сжатая версия ext4).
- 🧩 boot.img — образ загрузки: ядро Linux и ramdisk, упакованные в специальный формат Android.
- 🧩 vendor.img — раздел производителя с драйверами и библиотеками.
- 🧩 payload.bin — контейнер внутри OTA-архива, содержащий сразу несколько разделов.
- 🧩 recovery.img — образ режима восстановления, по структуре похож на boot.img.
Определить формат помогает утилита file в Linux: команда file system.img покажет, является ли образ Android sparse image или обычной файловой системой ext4. На Windows аналогичную подсказку даёт открытие файла в hex-редакторе: у sparse-образа в начале стоит сигнатура 3A FF 26 ED.
Распаковка sparse-образов через simg2img
Заводские прошивки (например, для устройств на чипах Qualcomm, распространяемые через fastboot) чаще всего содержат sparse-образы. Это экономия места: пустые блоки файловой системы не хранятся в файле. Конвертирует их в обычный ext4 утилита simg2img, входящая в состав Android SDK.
На Linux команда выглядит так:
simg2img system.img system_raw.img
После конвертации образ можно смонтировать напрямую:
sudo mkdir /mnt/system
sudo mount -o loop system_raw.img /mnt/system
Внутри появится привычная структура каталогов: /app, /priv-app, /framework и другие. На Windows прямое монтирование ext4 затруднено, поэтому там используют либо WSL (подсистему Linux), либо специализированные утилиты вроде ext4_unpacker.
⚠️ Внимание: монтирование выполняйте в режиме «только чтение» (опция -o ro), если планируете просто извлечь файлы. Случайная запись в смонтированный образ может повредить его структуру, и собрать прошивку обратно уже не получится.
Распаковка на Windows: ext4_unpacker и готовые наборы
Если Linux под рукой нет, задачу решают Windows-инструменты. Наиболее известный вариант — ext4_unpacker: консольная утилита, извлекающая содержимое ext4-образов без монтирования.
ext4_unpacker.exe system_raw.img output_folder
Порядок действий на Windows обычно такой:
- 🛠️ Скачайте пакет инструментов, включающий simg2img и ext4_unpacker (часто распространяются вместе как «Android Image Kitchen» или аналогичные наборы).
- 🛠️ Сконвертируйте sparse-образ командой
simg2img.exe system.img system_raw.img. - 🛠️ Распакуйте результат через ext4_unpacker в отдельную папку.
- 🛠️ Проверьте, что извлечённые файлы открываются и имеют ненулевой размер.
☑️ Подготовка к распаковке IMG
Обратите внимание на свободное место: sparse-файл может занимать существенно меньше, чем распакованный раздел, поэтому на диске должно быть заметный запас.
Разбор boot.img и recovery.img
Образы boot.img и recovery.img — это не файловые системы, а контейнеры особого формата: внутри лежат ядро, ramdisk и служебные заголовки. Для их разборки применяются инструменты Android Image Kitchen или magiskboot (компонент проекта Magisk).
Типичная команда распаковки через magiskboot:
magiskboot unpack boot.img
В результате в рабочей папке появятся файлы ядра (kernel) и ramdisk (ramdisk.cpio), который дополнительно распаковывается как cpio-архив. Именно через разбор boot.img выполняется, например, установка Magisk для получения root-доступа.
⚠️ Внимание: модифицированный boot.img, собранный обратно с ошибками, может привести к невозможности загрузки устройства (bootloop). Перед прошивкой изменённого образа убедитесь, что у вас есть способ восстановить оригинал — например, через fastboot или режим восстановления, предусмотренный производителем.
Извлечение разделов из payload.bin
OTA-обновления и прошивки многих современных устройств распространяются в виде архива, где вместо отдельных IMG-файлов лежит один контейнер payload.bin. Это бинарный формат обновлений Android, и обычные утилиты его не открывают.
Для извлечения используется Payload Dumper — скрипт на Python, который распаковывает payload.bin в набор отдельных образов разделов. Запуск выглядит примерно так:
python payload_dumper.py payload.bin --out output_folder
На выходе вы получите привычные system.img, vendor.img, boot.img и другие разделы, которые дальше обрабатываются описанными выше способами. Для работы скрипта потребуется установленный Python и зависимости, указанные в документации конкретной версии инструмента.
Сравнение инструментов для распаковки IMG
Выбор утилиты зависит от формата образа и вашей операционной системы. Сводная таблица поможет сориентироваться:
| Инструмент | Формат | Платформа | Назначение |
|---|---|---|---|
| simg2img | sparse → ext4 | Linux, Windows | Конвертация сжатых образов |
| ext4_unpacker | ext4 | Windows | Извлечение файлов из раздела |
| magiskboot | boot/recovery | Android, Linux | Разбор образов загрузки |
| Payload Dumper | payload.bin | Windows, Linux | Извлечение разделов из OTA |
| Android Image Kitchen | boot/recovery | Windows, Linux | Распаковка и сборка boot.img |
На практике часто требуется цепочка из нескольких инструментов: сначала Payload Dumper, затем simg2img, затем монтирование или ext4_unpacker.
Почему system.img не открывается архиватором
Формат IMG в прошивках Android — это не архив, а побайтовый образ раздела с файловой системой ext4 (или её сжатой sparse-версией). 7-Zip и подобные программы ориентированы на архивные форматы, поэтому либо не видят содержимое, либо извлекают его с ошибками. Некоторые версии 7-Zip частично понимают ext4, но корректнее использовать профильные утилиты.
Типичные ошибки и что с ними делать
Даже с правильным инструментом распаковка не всегда проходит гладко. Разберём частые проблемы.
«Invalid sparse file format» — вы пытаетесь сконвертировать файл, который уже является обычным ext4, либо образ повреждён. Проверьте сигнатуру файла и целостность скачанной прошивки.
Образ монтируется пустым или с ошибкой. Возможная причина — файловая система не ext4, а, например, erofs (её используют новые версии Android на ряде устройств). Для erofs нужен отдельный инструмент, например fsck.erofs с опцией извлечения, либо специализированные распаковщики.
Извлечённые файлы не читаются. Проверьте, завершилась ли распаковка без ошибок, и не обрывался ли процесс из-за нехватки места на диске.
Часто задаваемые вопросы
Можно ли распаковать IMG обычным архиватором, например 7-Zip?
В отдельных случаях 7-Zip способен частично открыть ext4-образ, но с sparse-форматом и boot.img он не работает. Надёжнее использовать профильные утилиты: simg2img, ext4_unpacker, magiskboot.
Чем отличается system.img от boot.img?
system.img — это файловая система раздела с операционной системой (приложения, библиотеки, ресурсы). boot.img — контейнер с ядром и ramdisk, отвечающий за загрузку устройства. Инструменты для их распаковки разные.
Нужен ли root на устройстве, чтобы распаковать IMG на компьютере?
Нет. Распаковка выполняется на ПК над файлом прошивки и не требует ни root, ни даже самого устройства. Root может понадобиться только если вы извлекаете образ раздела напрямую со смартфона.
Можно ли после распаковки собрать образ обратно?
Да, для этого существуют обратные инструменты: img2simg для sparse-конвертации, mke2fs и make_ext4fs для создания ext4, magiskboot repack для boot.img. Собранный образ необходимо тестировать осторожно — ошибки сборки могут сделать раздел нерабочим.
Где взять файл прошивки для распаковки?
Официальные прошивки производители обычно публикуют на своих сайтах поддержки. Используйте только прошивку, предназначенную именно для вашей модели и региона устройства, — образы от других модификаций могут быть несовместимы.