Ошибка «can't unpack image» или пустая папка после попытки распаковать boot.img — типичная точка входа в тему unpacker kitchen для Android: инструмент либо не понимает формат образа, либо запущен не в той среде. Прежде чем искать другую «кухню», проверьте, что у вас за файл: образы boot.img, system.img, vendor.img и payload-архивы payload.bin распаковываются разными утилитами, и универсального инструмента не существует.
Под словом kitchen («кухня») в среде моддеров понимают набор скриптов и утилит для разборки, модификации и обратной сборки прошивок Android. Классический пример — Android Kitchen от dsixda, изначально созданная под HTC-устройства, а также более современные инструменты вроде Android Image Kitchen и скриптов для распаковки payload.bin. В этой статье разберём, какие задачи решает unpacker kitchen, как выбрать инструмент под конкретный формат и как не превратить телефон в «кирпич» при обратной сборке.
Что такое unpacker kitchen и зачем она нужна
Unpacker kitchen — это не одна программа, а класс инструментов, которые извлекают содержимое образов прошивки в редактируемый вид. Распаковав boot.img, вы получаете ядро и ramdisk — именно так работает, например, Magisk при патче загрузочного образа для получения root. Распаковка system.img даёт доступ к системным приложениям, build.prop и конфигурациям.
Типичные сценарии использования:
- 🛠️ Извлечение и модификация ramdisk из
boot.imgдля root или кастомного ядра - 📦 Разборка
payload.binиз OTA-обновлений устройств с A/B-разделами - 🧩 Деодексирование и редактирование системных приложений в
system.img - 🔍 Анализ стоковой прошивки перед портированием на другое устройство
Важно понимать: «кухня» — это инструмент для тех, кто уже понимает структуру прошивки. Если цель — просто получить root, часто достаточно пропатчить boot.img через Magisk без полной разборки образа.
Какие форматы образов встречаются в прошивках Android
Прежде чем запускать unpacker, определите формат файла. Одна и та же «кухня» может отлично справляться со старыми yaffs2-образами и бессильно зависать на современных erofs или sparse-образах. Проверить тип можно командой file имя_образа в Linux-терминале.
| Файл | Что внутри | Типичный инструмент распаковки |
|---|---|---|
boot.img | Ядро + ramdisk | Android Image Kitchen, Magisk, unpackbootimg |
system.img / vendor.img | Файловая система раздела (ext4, erofs, sparse) | simg2img + mount, либо скрипты kitchen |
payload.bin | OTA-пакет A/B-устройств | payload-dumper-go и аналоги |
recovery.img | Раздел восстановления | Android Image Kitchen |
super.img | Динамические разделы (system, vendor, product) | lpunpack / simg2img |
Обратите внимание на строку с super.img: на устройствах с динамическими разделами привычных отдельных system.img может не быть вовсе — всё лежит внутри одного большого образа, и распаковывать его нужно в два этапа.
Популярные инструменты: от Android Kitchen до современных скриптов
Android Kitchen от dsixda — исторически самая известная «кухня», работающая под Linux и Cygwin. Она ориентирована на старые устройства и форматы; для современных смартфонов с Android 10+ её возможностей обычно недостаточно. Более актуальный вариант для работы с загрузочными образами — Android Image Kitchen (osm0sis), который корректно разбирает и собирает boot.img большинства устройств, включая варианты с нестандартными заголовками.
Для OTA-пакетов Google и ряда производителей используются дамперы payload.bin. Для разделов в формате sparse сначала выполняется конвертация:
simg2img system.img system_raw.img
После этого образ можно смонтировать или распаковать дальше. На Windows многие из этих утилит работают через WSL — это надёжнее, чем искать сомнительные «портированные» сборки.
Подготовка среды: Linux, WSL и зависимости
Большинство «кухонь» — это наборы bash-скриптов, поэтому родная среда для них — Linux. На Windows практичный путь — установить WSL с Ubuntu и работать внутри неё. Понадобятся базовые пакеты: python3, git, утилиты для работы с cpio и gzip, а также сам набор скриптов выбранной kitchen.
Общий порядок подготовки выглядит так:
- 💻 Установите WSL/Linux-окружение и обновите пакеты
- 📥 Склонируйте репозиторий выбранной kitchen из официального источника (например, GitHub автора)
- 📂 Поместите образ прошивки в рабочую папку инструмента
- 🔐 Проверьте целостность файла: битый образ — частая причина ошибок распаковки
⚠️ Внимание: скачивайте kitchen и сопутствующие утилиты только из репозиториев авторов или известных профильных ресурсов. Сборки «всё в одном» с непонятных файлообменников нередко содержат вредоносный код, а права, которые вы даёте скриптам, обычно высокие.
Пошаговая распаковка boot.img через Android Image Kitchen
Разбор загрузочного образа — самая частая задача. На примере Android Image Kitchen процедура выглядит так: скрипт unpackimg.sh принимает образ, определяет его формат и раскладывает содержимое по папкам ramdisk и split_img.
./unpackimg.sh boot.img
В split_img лежат ядро и служебные параметры (cmdline, base, pagesize), в ramdisk — файловая структура начального окружения: init.rc, fstab-файлы, скрипты инициализации. После правок образ собирается обратно скриптом repackimg.sh, результат появляется как image-new.img.
☑️ Проверка перед прошивкой пересобранного образа
Если распаковка завершилась ошибкой — посмотрите лог скрипта: он обычно явно пишет, какой формат заголовка не распознан. Возможные причины: образ зашифрован, это не boot-образ вовсе, либо производитель использует нестандартный формат, под который нужен отдельный инструмент.
Почему kitchen не видит мой образ
Частые причины: файл является sparse-образом (сначала simg2img), образ лежит внутри payload.bin или super.img и его нужно извлечь отдельно, либо прошивка упакована фирменным контейнером производителя (например, форматы Samsung .tar.md5 распаковываются обычным tar).
Обратная сборка и прошивка: где чаще всего ошибаются
Пересобранный образ прошивается через fastboot:
fastboot flash boot image-new.img
Критичный момент — прошивать образ нужно строго в тот раздел, из которого он был извлечён, и только для своей модели и версии прошивки. Образ от другой ревизии устройства или другой сборки системы с высокой вероятностью приведёт к bootloop. На устройствах с A/B-разделами убедитесь, что прошиваете активный слот, либо явно укажите его: fastboot flash boot_a image-new.img — схему слотов конкретной модели сверяйте с документацией.
⚠️ Внимание: разблокировка загрузчика на большинстве устройств стирает все данные и может лишить гарантии. Проверьте политику производителя вашей модели до начала работ, а не после.
Если после прошивки устройство не загружается — не паникуйте: загрузитесь в fastboot и верните оригинальный boot.img. Именно поэтому бэкап оригинала — не формальность, а обязательный шаг.
Типичные ошибки и их решения
Разберём частые проблемы без привязки к конкретным моделям, так как поведение зависит от устройства и версии Android.
Скрипт не запускается. Проверьте права на исполнение (chmod +x) и наличие зависимостей — сообщение об ошибке обычно указывает недостающий пакет. Под Windows без WSL большинство bash-скриптов не заработает в принципе.
Распаковалось, но папки пустые. Возможная причина — образ в формате sparse или erofs, который данный инструмент не поддерживает. Конвертируйте через simg2img или подберите утилиту под конкретную файловую систему.
Пересобранный образ не загружается. Сверьте, не менялись ли служебные параметры в split_img (их лучше не трогать без понимания), и убедитесь, что правки в ramdisk синтаксически корректны — ошибка в init.rc способна остановить загрузку на раннем этапе.
⚠️ Внимание: не прошивайте образы, найденные на форумах «для похожей модели». Даже незначительное отличие ревизии платы или региона прошивки делает чужой образ потенциально опасным для устройства.
FAQ: частые вопросы об unpacker kitchen для Android
Можно ли распаковать прошивку прямо на телефоне, без ПК?
Частично — существуют порты отдельных утилит под Android (например, Magisk умеет патчить boot.img на самом устройстве). Но полноценная работа с kitchen удобнее и безопаснее на ПК: больше инструментов, проще откат и меньше риск повредить данные на самом устройстве.
Чем распаковать payload.bin из OTA-обновления?
Используйте специализированные дамперы, например payload-dumper-go: они извлекают из пакета отдельные образы разделов (boot, system и другие), которые затем можно разбирать дальше обычными средствами.
Подойдёт ли классическая Android Kitchen от dsixda для современного смартфона?
Для устройств с динамическими разделами, erofs и A/B-схемой её возможностей, как правило, недостаточно — проект давно не развивается. Для современных прошивок используйте Android Image Kitchen, payload-дамперы и lpunpack.
Распаковка и пересборка boot.img — это легально?
Модификация прошивки собственного устройства сама по себе не запрещена, но разблокировка загрузчика может нарушать условия гарантии производителя, а распространение модифицированных проприетарных компонентов — права их владельцев. Уточняйте условия для вашей модели и юрисдикции.
Что делать, если после прошивки телефон завис на логотипе?
Загрузитесь в режим fastboot (комбинация кнопок зависит от модели — смотрите инструкцию к устройству) и прошейте обратно оригинальный boot.img из сохранённой стоковой прошивки. Если fastboot недоступен, ищите фирменный способ восстановления производителя.