Boot img распаковка: полное руководство по разбору и сборке образа загрузки

Распаковка 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 KitchenWindows, LinuxРазбор и сборка через скрипты unpackimg / repackimg
magiskbootAndroid, Windows, LinuxЧасть Magisk, работает с header v0–v4
unpackbootimg / mkbootimgLinuxКлассические утилиты из исходников AOSP
Payload dumper / extractWindows, LinuxИзвлечение boot.img из полной прошивки

Для большинства задач достаточно magiskboot — он развивается вместе с Magisk и поддерживает актуальные форматы. Android Image Kitchen удобнее тем, что распаковывает ramdisk сразу в папку с файлами, а не требует ручной работы с cpio.

📊 Каким инструментом вы распаковываете boot.img?
magiskboot
Android Image Kitchen
unpackbootimg
Пока только выбираю

Распаковка 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 и запустить скрипт распаковки.

  1. Скачайте AIK под свою ОС и распакуйте архив.
  2. Скопируйте boot.img в корень папки AIK.
  3. Запустите unpackimg.bat (Windows) или unpackimg.sh (Linux).
  4. Содержимое ramdisk появится в папке ramdisk, ядро — как файл zImage или в каталоге split_img.
⚠️ Внимание: в Windows запускайте скрипты AIK из папки без кириллицы и пробелов в пути — иначе разбор может оборваться с ошибкой на этапе распаковки ramdisk.

☑️ Проверка перед редактированием boot.img

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

Где взять 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. Права и разблокированный загрузчик понадобятся только на этапе прошивки результата на устройство.