Распаковка boot.img требуется, когда нужно пропатчить ядро для получения root через Magisk, изменить ramdisk, убрать проверку dm-verity или отредактировать файл default.prop в загрузочном образе Android. Без корректной распаковки и последующей пересборки устройство после прошивки уйдёт в bootloop — циклическую перезагрузку на логотипе.
Файл boot.img — это не обычный архив, а бинарный контейнер, внутри которого лежат ядро (kernel), образ рамдиска (ramdisk), а на современных устройствах ещё и dtb (device tree blob) с деревом устройств. Извлечь его содержимое можно специальными утилитами, и в этой статье разберём основные инструменты, команды и типичные ошибки.
Что находится внутри boot.img
Структура загрузочного образа зависит от версии Android и поколения формата заголовка (boot header). В старых устройствах использовался header версии 0–2, в современных — версии 3 и 4, где ramdisk вынесен в отдельный раздел vendor_boot.
Типичный состав образа:
- 🧩 Kernel — сжатое ядро Linux, загружаемое первым при старте системы.
- 📦 Ramdisk — архив cpio (обычно сжатый gzip или lz4) с начальной файловой системой:
init,fstab, скрипты инициализации. - 🌳 DTB — бинарное описание аппаратной конфигурации устройства.
- 🔧 Second stage — дополнительный загрузочный блок, встречается на части устройств.
Перед распаковкой полезно определить версию заголовка: от этого зависит, какой инструмент корректно разберёт образ. Утилиты вроде Android Image Kitchen показывают эту информацию при разборе.
Инструменты для распаковки boot.img
Универсального «официального» распаковщика не существует — сообщество использует несколько проверенных решений. Выбор зависит от вашей ОС и версии заголовка образа.
| Инструмент | Платформа | Особенности |
|---|---|---|
| Android Image Kitchen | Windows, Linux | Разбор и сборка через скрипты unpackimg / repackimg |
| magiskboot | Android, Windows, Linux | Часть Magisk, работает с header v0–v4 |
| unpackbootimg / mkbootimg | Linux | Классические утилиты из исходников AOSP |
| Payload dumper / extract | Windows, Linux | Извлечение boot.img из полной прошивки |
Для большинства задач достаточно magiskboot — он развивается вместе с Magisk и поддерживает актуальные форматы. Android Image Kitchen удобнее тем, что распаковывает ramdisk сразу в папку с файлами, а не требует ручной работы с cpio.
Распаковка boot.img через magiskboot
Бинарник magiskboot можно получить из архива Magisk или собрать отдельно. Работа ведётся из командной строки: в Windows это cmd или PowerShell, в Linux — терминал.
Базовая команда распаковки:
magiskboot unpack boot.img
После выполнения в каталоге появятся файлы kernel, ramdisk.cpio, а при наличии — dtb и second. Утилита выведет в консоль параметры образа: размер страницы, адреса загрузки, версию заголовка. Эти параметры обязательно сохраните — они понадобятся при пересборке, иначе собранный образ может не загрузиться.
Чтобы разобрать сам ramdisk, потребуется дополнительный шаг:
magiskboot cpio ramdisk.cpio extract
Либо распакуйте cpio-архив стандартными средствами, если знаете тип сжатия (gzip, lz4, lzma). Определить тип поможет команда file ramdisk.cpio в Linux.
Распаковка через Android Image Kitchen
Android Image Kitchen (AIK) — набор скриптов, который автоматизирует весь процесс. Достаточно поместить boot.img в папку с AIK и запустить скрипт распаковки.
- Скачайте AIK под свою ОС и распакуйте архив.
- Скопируйте boot.img в корень папки AIK.
- Запустите
unpackimg.bat(Windows) илиunpackimg.sh(Linux). - Содержимое ramdisk появится в папке
ramdisk, ядро — как файлzImageили в каталогеsplit_img.
⚠️ Внимание: в Windows запускайте скрипты AIK из папки без кириллицы и пробелов в пути — иначе разбор может оборваться с ошибкой на этапе распаковки ramdisk.
☑️ Проверка перед редактированием boot.img
Где взять boot.img для вашего устройства
Образ должен точно соответствовать установленной прошивке — патч boot.img от другой версии системы часто приводит к незагрузке устройства. Источники зависят от производителя.
- 📥 Заводская прошивка — у многих брендов (Google Pixel, Xiaomi) образы доступны в составе полных пакетов прошивок.
- 🗜 Payload.bin — в прошивках формата OTA образ лежит внутри payload и извлекается утилитами типа payload dumper.
- 💾 Дамп раздела — на устройстве с root можно скопировать раздел командой
dd, но это рискованный метод.
Почему нельзя брать boot.img от другой прошивки
Ядро и ramdisk собираются под конкретную версию системы. Несовпадение версий приводит к конфликту модулей ядра, отказу монтирования разделов и bootloop. Даже минорное обновление OTA может изменить содержимое образа.
Сборка boot.img обратно после правок
После редактирования ramdisk или замены ядра образ нужно собрать с теми же параметрами, что были у оригинала. В magiskboot пересборка выполняется командой:
magiskboot repack boot.img new-boot.img
Команда берёт исходный boot.img как шаблон параметров и подставляет изменённые файлы из текущего каталога. В AIK достаточно запустить repackimg — скрипт соберёт образ автоматически, сохранив структуру заголовка.
Прошивается результат стандартно через fastboot: fastboot flash boot new-boot.img. На устройствах с разделами A/B уточните активный слот — команда fastboot getvar current-slot покажет текущий.
⚠️ Внимание: прошивка модифицированного boot.img требует разблокированного загрузчика. Разблокировка bootloader на большинстве устройств стирает все данные и может повлиять на гарантию — уточняйте условия в документации производителя вашей модели.
Типичные ошибки и их решения
Чаще всего проблемы возникают не при распаковке, а после — на этапе прошивки результата. Разберём основные сценарии.
Bootloop после прошивки — признак неверной пересборки или несовпадения версии образа с прошивкой. Решение: прошить обратно оригинальный boot.img через fastboot и повторить процедуру, сохранив параметры заголовка.
Ошибка распаковки ramdisk — возможная причина в нестандартном сжатии. Проверьте тип архива и попробуйте другой инструмент: magiskboot обычно справляется там, где старые версии AIK выдают ошибку.
Устройство не определяется в fastboot — проверьте установку драйверов на ПК и попробуйте другой USB-порт. Это аппаратно-зависимый момент, универсальной команды здесь нет.
⚠️ Внимание: если после прошивки устройство не загружается и не входит в fastboot, не предпринимайте прошивку других разделов наугад — обратитесь к инструкции по восстановлению именно вашей модели, так как процедуры emergency-режима у производителей различаются.
Часто задаваемые вопросы
Можно ли распаковать boot.img прямо на телефоне?
Да, magiskboot работает на Android через терминал (например, Termux) или встроенными средствами Magisk — приложение само патчит boot.img без ПК, если вы загрузите ему оригинальный образ.
Чем отличается boot.img от vendor_boot.img?
На устройствах с header версии 3 и выше ramdisk и часть ресурсов вынесены в отдельный раздел vendor_boot. Для патча Magisk обычно нужен boot.img, но на некоторых моделях требуется править именно vendor_boot — зависит от устройства.
Безопасно ли редактировать файлы внутри ramdisk?
Правка конфигурационных файлов вроде fstab или prop относительно безопасна при наличии резервной копии. Удаление системных скриптов инициализации может привести к незагрузке — меняйте только то, назначение чего понимаете.
Почему собранный образ больше или меньше оригинала?
Размер зависит от типа сжатия ramdisk и выравнивания по размеру страницы. Небольшая разница нормальна; критично, чтобы параметры заголовка совпадали с оригинальными.
Нужен ли root для распаковки boot.img на ПК?
Нет, распаковка и сборка на компьютере не требуют root. Права и разблокированный загрузчик понадобятся только на этапе прошивки результата на устройство.