Файл payload.bin внутри ZIP-архива OTA-прошивки — это контейнер с образами разделов (boot, system, vendor и другими), и стандартные архиваторы вроде 7-Zip его не открывают: формат разработан Google специально для механизма обновлений A/B-разделов. Чтобы достать из него, например, boot.img для патча через Magisk или system.img для изучения прошивки, понадобятся специальные инструменты — payload-dumper-go, Python-скрипты или утилита Fastboot Enhance.
В этой статье разберём, что находится внутри payload.bin, какие программы умеют его распаковывать на Windows и Linux, как проверить целостность извлечённых образов и что делать, если распаковка обрывается с ошибкой. Инструкции носят универсальный характер: структура формата едина для всех устройств с A/B-разметкой, но набор разделов внутри зависит от конкретной модели смартфона.
Что такое payload.bin и зачем его распаковывать
Формат payload.bin появился вместе с механизмом бесшовных обновлений (Seamless Updates) в Android. Вместо набора отдельных img-файлов Google упаковывает все разделы в один бинарный контейнер с дельта- или полными данными, снабжённый манифестом и контрольными суммами. Система обновления на устройстве читает этот файл напрямую, а вот пользователю без специальных утилит содержимое недоступно.
Типичные сценарии, когда требуется распаковка:
- 🔧 Извлечение
boot.imgилиinit_boot.imgдля получения root-прав через Magisk - 📦 Получение
vendor_boot.img,dtbo.imgдля прошивки через fastboot - 🔍 Анализ прошивки: извлечение
system.imgиproduct.imgдля изучения содержимого - 🛠️ Восстановление устройства, когда нужен конкретный раздел из заводского образа
Обратите внимание: в payload.bin из инкрементального (дельта) обновления находятся не полные образы, а патчи к существующим разделам. Распаковать из него готовый boot.img не получится — нужен полный (full) OTA-пакет. Перед началом работы убедитесь, что скачан именно полный архив прошивки, а не инкрементальное обновление.
Подготовка: что понадобится перед распаковкой
Для работы потребуется компьютер с достаточным объёмом свободного места. Распакованные образы суммарно занимают заметно больше, чем сам payload.bin, поскольку данные внутри контейнера сжаты. Ориентируйтесь на запас в несколько десятков гигабайт для современных прошивок — точный объём зависит от устройства.
Дальше нужно выбрать инструмент. Основные варианты:
- ⚙️ payload-dumper-go — быстрая консольная утилита, написанная на Go, работает на Windows, Linux и macOS
- 🐍 payload_dumper на Python — классический скрипт, требует установленного Python и зависимостей
- 🖥️ Fastboot Enhance — программа с графическим интерфейсом для Windows, умеет извлекать разделы из payload.bin без командной строки
Способ 1: распаковка через payload-dumper-go
Утилита payload-dumper-go считается самым быстрым вариантом благодаря многопоточной обработке. Скачайте готовый бинарный файл под свою операционную систему со страницы релизов проекта на GitHub — установка не требуется, достаточно распаковать архив.
Поместите payload.bin в одну папку с исполняемым файлом утилиты, откройте терминал или командную строку в этой папке и выполните команду. Базовый синтаксис выглядит так:
payload-dumper-go payload.bin
Если нужен только один конкретный раздел, например boot, используйте параметр фильтрации по имени раздела:
payload-dumper-go -partitions boot payload.bin
По завершении в папке вывода (по умолчанию создаётся рядом) появятся извлечённые .img-файлы. Проверьте, что размеры файлов не нулевые и соответствуют ожидаемым разделам — пустой или подозрительно маленький образ указывает на прерванный процесс.
☑️ Чек-лист распаковки payload.bin
Способ 2: Python-скрипт payload_dumper
Альтернатива — классический скрипт payload_dumper, который работает там, где установлен Python 3. Этот вариант медленнее, но прозрачен: при необходимости можно открыть код и посмотреть, что именно происходит с данными.
Порядок действий следующий. Установите зависимости, затем запустите скрипт, указав путь к файлу и папку назначения:
pip install -r requirements.txt
python payload_dumper.py payload.bin --out output_folder
⚠️ Внимание: не прерывайте процесс распаковки закрытием терминала или отключением питания компьютера. Недозаписанные образы разделов выглядят как обычные файлы, но прошивка такого повреждённого
boot.imgможет привести к незагружающемуся устройству. Дождитесь сообщения о завершении.
Способ 3: Fastboot Enhance с графическим интерфейсом
Для тех, кто предпочитает обходиться без командной строки, подойдёт программа Fastboot Enhance для Windows. В ней есть функция просмотра содержимого payload.bin: вы открываете файл, видите список разделов внутри и извлекаете только нужные кнопкой в интерфейсе.
Этот способ удобен, когда из всей прошивки требуется один-два образа и нет желания разбираться с параметрами консольных утилит. Минус — программа работает только под Windows, и её функциональность ограничена возможностями конкретной версии.
Сравнение инструментов для распаковки
| Инструмент | Платформа | Интерфейс | Скорость |
|---|---|---|---|
| payload-dumper-go | Windows, Linux, macOS | Командная строка | Высокая (многопоточность) |
| payload_dumper (Python) | Windows, Linux, macOS | Командная строка | Средняя |
| Fastboot Enhance | Windows | Графический | Средняя |
| Онлайн-сервисы | Браузер | Веб-интерфейс | Зависит от загрузки файла |
Отдельно стоит сказать об онлайн-сервисах распаковки. Загружать многогигабайтный файл на чужой сервер долго, а доверять стороннему ресурсу содержимое прошивки — не лучшая идея с точки зрения безопасности. Локальные инструменты предпочтительнее.
Типичные ошибки и их решения
Чаще всего процесс обрывается из-за банальных причин. Разберём основные сценарии и способы проверки.
Ошибка чтения файла или «invalid magic». Возможная причина — повреждённый или недокачанный payload!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!