Когда прошивка через 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 и recovery | Windows, 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.
Подготовка: что сделать до перепаковки
До запуска любых утилит необходимо получить корректный исходный образ. Его извлекают из заводской прошивки именно вашей модели и региона — образ от другой ревизии устройства может не загрузиться или нарушить работу модема и других компонентов. Если прошивка распространяется в виде payload.bin, сначала применяют payload-dumper; если разделы в sparse-формате — конвертируют через simg2img.
⚠️ Внимание: никогда не прошивайте boot-образ от другой модели или другой версии прошивки. Даже в рамках одной линейки устройств ревизии железа могут отличаться, и несовместимое ядро способно вывести аппарат из строя вплоть до состояния, когда потребуется сервисное восстановление.
Также убедитесь, что загрузчик устройства разблокирован — без этого прошивка модифицированного раздела технически невозможна на большинстве аппаратов. Процедура разблокировки зависит от производителя и часто сопровождается сбросом данных, поэтому заранее сделайте резервную копию.
☑️ Подготовка к перепаковке boot.img
Распаковка и перепаковка через 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?
Возможная причина — повреждены другие разделы или несовпадение версий прошивки. В этом случае выполните полную прошивку заводским образом через официальный инструмент производителя. Если и это не помогает, обратитесь в сервисный центр — самостоятельные дальнейшие действия могут усугубить состояние аппарата.