Unpacker Kitchen для Android: распаковка прошивок и образов системы

Ошибка «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Ядро + ramdiskAndroid Image Kitchen, Magisk, unpackbootimg
system.img / vendor.imgФайловая система раздела (ext4, erofs, sparse)simg2img + mount, либо скрипты kitchen
payload.binOTA-пакет 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 — это надёжнее, чем искать сомнительные «портированные» сборки.

📊 С какой задачей вы планируете использовать unpacker kitchen?
Патч boot.img для root
Распаковка payload.bin из OTA
Модификация system/vendor раздела
Анализ и портирование прошивки

Подготовка среды: 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.

☑️ Проверка перед прошивкой пересобранного образа

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

Если распаковка завершилась ошибкой — посмотрите лог скрипта: он обычно явно пишет, какой формат заголовка не распознан. Возможные причины: образ зашифрован, это не 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 недоступен, ищите фирменный способ восстановления производителя.