Android IMG Repack Tools: инструменты распаковки и перепаковки образов

Когда прошивка через fastboot flash boot boot.img завершается ошибкой несоответствия размера или устройство уходит в бутлуп после заливки модифицированного образа, первое, что стоит проверить — корректность перепаковки самого файла boot.img. Неверно собранный заголовок, неправильный cmdline или несовпадающий размер страницы памяти приводят к тому, что загрузчик отклоняет образ ещё до запуска ядра. Именно поэтому инструменты класса android img repack tools — это не опциональная экзотика, а базовый набор любого, кто работает с кастомными ядрами, патчами Magisk или восстановлением разделов.

В этой статье разберём, какие утилиты применяются для распаковки и перепаковки образов Android, чем отличаются форматы boot.img, recovery.img и vendor_boot.img, и как безопасно собрать образ обратно, чтобы устройство загрузилось. Отдельно разберём типичные ошибки и способы проверить результат до прошивки.

Что такое образы IMG в Android и зачем их перепаковывают

Раздел boot на устройствах Android содержит ядро (kernel), начальный RAM-диск (ramdisk) и заголовок с параметрами загрузки. В более новых версиях платформы часть содержимого вынесена в разделы vendor_boot и init_boot, поэтому структура зависит от версии системы и конкретного устройства. Перепаковка нужна, когда требуется изменить ramdisk (например, для root-доступа), заменить ядро или поправить параметры командной строки ядра.

Типичные сценарии, где без repack-инструментов не обойтись:

  • 🔧 Патч boot.img через Magisk с последующей перепаковкой вручную на ПК
  • 🛠️ Восстановление recovery.img после неудачной прошивки кастомного рекавери
  • 📦 Извлечение ядра из стоковой прошивки для анализа или сборки кастомного ядра
  • 🔄 Откат на оригинальный образ после экспериментов с модификациями

Важно понимать: формат заголовка образа менялся между версиями платформы (так называемые header version: 0, 1, 2, 3, 4). Утилита, которая корректно работает со старым форматом, может испортить образ нового устройства. Поэтому перед перепаковкой всегда сверяйте версию заголовка исходного файла.

Обзор основных инструментов

Экосистема инструментов для работы с образами Android довольно широка, но фактическим стандартом остаются несколько решений. Ниже — те, о которых можно говорить с уверенностью, поскольку они давно поддерживаются сообществом и описаны в открытых источниках.

ИнструментНазначениеПлатформаОсобенности
Android Image KitchenРаспаковка/перепаковка boot и recoveryWindows, Linux, AndroidСкрипты unpackimg и repackimg, автоопределение формата
mkbootimg / unpackbootimgНизкоуровневая сборка и разбор образаLinux, Android (Termux)Требует ручного указания параметров заголовка
Magisk (magiskboot)Разбор и сборка boot-образов, патчAndroid, LinuxВстроен в Magisk, поддерживает новые форматы заголовков
payload-dumper / simg2imgИзвлечение образов из OTA и sparse-форматаLinux, WindowsПодготовительный этап перед repack

Android Image Kitchen удобен тем, что автоматически определяет параметры заголовка при распаковке и использует их же при сборке — это снижает риск ошибки. magiskboot входит в состав Magisk и считается одним из наиболее совместимых вариантов для современных устройств, включая аппараты с vendor_boot.

📊 Какой инструмент для перепаковки boot.img вы используете чаще всего?
Android Image Kitchen
magiskboot (Magisk)
mkbootimg вручную
Только патчу через приложение Magisk

Подготовка: что сделать до перепаковки

До запуска любых утилит необходимо получить корректный исходный образ. Его извлекают из заводской прошивки именно вашей модели и региона — образ от другой ревизии устройства может не загрузиться или нарушить работу модема и других компонентов. Если прошивка распространяется в виде payload.bin, сначала применяют payload-dumper; если разделы в sparse-формате — конвертируют через simg2img.

⚠️ Внимание: никогда не прошивайте boot-образ от другой модели или другой версии прошивки. Даже в рамках одной линейки устройств ревизии железа могут отличаться, и несовместимое ядро способно вывести аппарат из строя вплоть до состояния, когда потребуется сервисное восстановление.

Также убедитесь, что загрузчик устройства разблокирован — без этого прошивка модифицированного раздела технически невозможна на большинстве аппаратов. Процедура разблокировки зависит от производителя и часто сопровождается сбросом данных, поэтому заранее сделайте резервную копию.

☑️ Подготовка к перепаковке boot.img

Выполнено: 0 / 5

Распаковка и перепаковка через Android Image Kitchen

Работа с Android Image Kitchen сводится к двум скриптам. Сначала образ распаковывается в рабочую папку — утилита определяет формат заголовка, тип сжатия ramdisk и сохраняет параметры в служебные файлы. Затем, после внесения изменений, образ собирается обратно с теми же параметрами.

./unpackimg.sh boot.img

вносите изменения в ramdisk/ или split_img/

./repackimg.sh

Результат появится в виде файла image-new.img. Обратите внимание: скрипт сохраняет оригинальные значения cmdline, pagesize и версии заголовка автоматически — вручную их менять не нужно, если только вы не понимаете точно, зачем это делаете.

Если перепаковка прошла без ошибок, но устройство не загружается, возможная причина — изменённый ramdisk, а не сама сборка. Проверьте, не нарушили ли вы структуру файлов внутри ramdisk и не потерялись ли права доступа к файлам при редактировании на Windows.

Работа с magiskboot и ручная сборка через mkbootimg

Утилита magiskboot распространяется в составе Magisk и работает как на устройстве, так и на ПК. Её преимущество — актуальная поддержка новых форматов заголовков, включая header version 3 и 4, где ramdisk из boot-раздела частично вынесен в vendor_boot. Базовый цикл выглядит так:

magiskboot unpack boot.img

правка файлов

magiskboot repack boot.img new-boot.img

Классический mkbootimg требует явного указания всех параметров: пути к ядру, ramdisk, смещений, размера страницы и командной строки ядра. Это гибкий, но непрощающий к ошибкам инструмент — одно неверное значение, и загрузчик отклонит образ. Использовать его вручную имеет смысл только если вы точно знаете параметры своего устройства, извлечённые из оригинального образа через unpackbootimg.

⚠️ Внимание: при ручной сборке через mkbootimg не копируйте параметры из чужих инструкций «для похожей модели». Значения base, pagesize и cmdline извлекайте только из оригинального образа вашего устройства.

Как узнать версию заголовка boot.img

Распакуйте образ через Android Image Kitchen или magiskboot — утилита выведет параметры заголовка, включая header version, в консоль или в служебные файлы папки split_img. Для устройств с header version 3+ учитывайте, что часть ramdisk находится в разделе vendor_boot, и патчить может потребоваться именно его.

Прошивка перепакованного образа и проверка результата

Прошивка выполняется через fastboot. Устройство переводится в режим загрузчика, после чего образ записывается в соответствующий раздел:

fastboot flash boot new-boot.img

fastboot reboot

На устройствах со схемой разделов A/B (два слота) актуальный слот определяется автоматически, но при необходимости его можно уточнить командой fastboot getvar current-slot. Если после прошивки устройство не загружается, первое действие — прошить обратно сохранённый оригинальный образ. Именно поэтому копия стокового boot.img до начала экспериментов — обязательное условие, а не рекомендация.

Признаки корректной перепаковки: устройство проходит логотип загрузчика, система стартует, модификации (например, root) работают. Если телефон завис на логотипе или перезагружается в fastboot — вероятны ошибки в ramdisk или несовпадение версии заголовка.

Типичные ошибки и их решение

Большинство проблем при работе с repack-инструментами сводится к нескольким повторяющимся сценариям. Разберём их по порядку.

  • Бутлуп после прошивки — чаще всего повреждён ramdisk при редактировании или неверная версия заголовка; откатитесь на сток и повторите распаковку заново
  • ⚠️ Ошибка «invalid boot image» при сборке — утилита не распознала формат; попробуйте другой инструмент (например, magiskboot вместо Image Kitchen)
  • 📵 fastboot не видит устройство — проверьте драйверы на ПК, кабель и то, что аппарат действительно в режиме загрузчика
  • 🔁 OTA-обновление не устанавливается — модифицированный boot ломает проверку целостности; перед обновлением восстановите стоковый раздел

Если ни один из вариантов не помогает, имеет смысл полностью перепрошить устройство заводским образом через официальные средства производителя. Это вернёт все разделы в исходное состояние и исключит накопленные ошибки модификаций.

Часто задаваемые вопросы

Можно ли перепаковать boot.img прямо на смартфоне?

Да. Утилита magiskboot работает на самом устройстве, а Android Image Kitchen имеет версию для Android. Также приложение Magisk умеет патчить boot.img без ПК — по сути, это та же распаковка и перепаковка, выполняемая автоматически.

Чем boot.img отличается от vendor_boot.img?

На устройствах с новыми версиями платформы часть ramdisk и параметров вынесена из boot в раздел vendor_boot. В зависимости от модели патчить нужно либо boot, либо vendor_boot (иногда init_boot). Точную схему для вашего устройства уточняйте в документации к прошивке или профильных ветках сообщества.

Нужен ли root для распаковки boot.img на ПК?

Нет. Распаковка и перепаковка образа на компьютере не требуют root — нужны только сам файл образа и утилиты. Root требуется лишь для некоторых операций на самом устройстве.

Почему после перепаковки размер образа изменился — это нормально?

Да, небольшое отличие размера нормально: оно зависит от сжатия ramdisk и выравнивания данных. Критично не совпадение размера, а корректность заголовка и содержимого. Если устройство загружается и работает стабильно — разница в размере значения не имеет.

Что делать, если устройство не загружается даже со стоковым boot.img?

Возможная причина — повреждены другие разделы или несовпадение версий прошивки. В этом случае выполните полную прошивку заводским образом через официальный инструмент производителя. Если и это не помогает, обратитесь в сервисный центр — самостоятельные дальнейшие действия могут усугубить состояние аппарата.