Если вы скачали OTA-прошивку для смартфона Xiaomi, Google Pixel, OnePlus или другого Android-устройства и обнаружили внутри ZIP-архива файл payload.bin вместо привычных образов boot.img или system.img — это нормально: производитель упаковал все разделы прошивки в единый бинарный контейнер. Файл payload.bin встречается в обновлениях устройств с системой A/B-разделов (seamless updates), и без специальной утилиты извлечь из него отдельные образы не получится.

В этой статье разберём, что представляет собой формат payload.bin, зачем он нужен, какие данные в нём хранятся и как безопасно распаковать его на компьютере, чтобы получить нужный раздел — например, boot.img для получения root-доступа через Magisk или vendor.img для анализа прошивки.

Что такое payload.bin простыми словами

Payload.bin — это бинарный контейнер, в котором Android упаковывает образы разделов при OTA-обновлении (over-the-air, «по воздуху»). Внутри файла находятся сжатые данные разделов boot, system, vendor, product и других, а также служебная информация о том, как именно эти данные должны быть записаны на устройство.

Формат разработан Google для механизма бесшовных обновлений (A/B updates), появившегося в Android 7.0 Nougat. Устройства с такой схемой имеют два набора разделов — слот A и слот B. Пока вы пользуетесь смартфоном на активном слоте, обновление в фоне записывается в неактивный, а после перезагрузки устройство просто переключается на обновлённый слот.

Рядом с payload.bin в архиве прошивки обычно лежат два сопутствующих файла: payload_properties.txt (контрольные данные и хеши) и care_map.pb (список областей, которые нужно сохранить при обновлении). Сам payload.bin имеет собственный заголовок с подписью, поэтому просто переименовать его в .zip или открыть архиватором нельзя.

💡

Payload.bin — это не архив в привычном смысле, а бинарный контейнер формата OTA с описанием операций записи разделов. Для извлечения нужен специальный инструмент — payload dumper.

Зачем производители используют этот формат

Главная причина — экономия трафика и надёжность обновления. Payload.bin поддерживает инкрементальные (дельта) обновления: вместо полного образа раздела файл может содержать только отличия новой версии от старой. Это заметно уменьшает размер скачиваемого обновления.

Дополнительные преимущества формата:

  • 📦 Сжатие данных — образы внутри контейнера сжаты, что уменьшает объём загрузки.
  • 🔐 Криптографическая подпись — заголовок файла подписан, устройство проверяет целостность перед записью.
  • 🧩 Потоковая запись — обновление применяется блоками, без необходимости хранить распакованный образ целиком.
  • ♻️ Откат при сбое — благодаря A/B-схеме неудачное обновление не «окирпичивает» устройство: оно загрузится со старого слота.

Для обычного пользователя всё это работает незаметно. А вот для тех, кто хочет получить root, установить кастомную прошивку или вытащить конкретный файл из системы, payload.bin становится препятствием — отсюда и популярность запросов о его распаковке.

Что находится внутри payload.bin

Состав контейнера зависит от устройства и типа прошивки (полная или инкрементальная), но типичный набор разделов выглядит так:

РазделНазначениеЗачем извлекают
boot.imgЯдро и ramdisk, отвечает за загрузку системыПатч через Magisk для root-доступа
system.imgОперационная система AndroidАнализ прошивки, извлечение приложений
vendor.imgДрайверы и компоненты производителяПортирование прошивок, исследование
dtbo.imgDevice Tree Blob — описание оборудованияСборка кастомных ядер
vbmeta.imgДанные верифицированной загрузки (AVB)Отключение проверки подписи при модификациях

На устройствах с динамическими разделами (super-раздел) вместо отдельных system и vendor внутри может находиться образ super.img, который дополнительно содержит логические разделы. Его распаковка — отдельная задача, решаемая другими инструментами.

📊 Зачем вам понадобилось извлекать payload.bin?
Для root через Magisk (нужен boot.img)
Для установки кастомной прошивки
Для анализа или извлечения файлов из прошивки
Просто изучаю устройство Android

Как извлечь файлы из payload.bin

Самый распространённый способ — открытый инструмент payload-dumper-go (консольная утилита, есть сборки под Windows, Linux и macOS) или его Python-аналог. Рассмотрим общий порядок действий без привязки к конкретной версии утилиты.

Сначала подготовьте всё необходимое:

☑️ Подготовка к распаковке payload.bin

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

Далее запустите утилиту, указав путь к файлу. Типичный вызов выглядит так (точный синтаксис зависит от версии инструмента — сверяйтесь с его документацией):

payload-dumper-go payload.bin

По умолчанию утилита распакует все разделы в отдельную папку. Если нужен только один образ, например boot, многие версии поддерживают фильтрацию по имени раздела — это сэкономит время и место на диске. После завершения в выходной директории появятся готовые .img-файлы, с которыми можно работать дальше.

💡

Если вам нужен только boot.img для Magisk, не распаковывайте весь контейнер — используйте опцию выборочного извлечения раздела. Это сократит время обработки с десятков минут до пары минут.

⚠️ Внимание: boot.img должен точно соответствовать версии прошивки, установленной на вашем смартфоне. Прошивка пропатченного образа от другой версии может привести к bootloop — устройство перестанет загружаться, и потребуется восстановление через fastboot.

Альтернативные способы распаковки

Консольная утилита — не единственный вариант. Существуют и другие подходы, у каждого свои ограничения:

  • 🐍 Python-скрипты (например, классический payload_dumper) — требуют установленного Python и зависимостей, работают медленнее, но подходят там, где нет готового бинарника.
  • 📱 Распаковка на самом Android-устройстве — существуют порты инструментов под Termux, но скорость и объём свободной памяти часто становятся ограничением.
  • 🖥️ Инструменты с графическим интерфейсом — встречаются оболочки, упрощающие процесс для новичков, однако их происхождение стоит проверять: скачивайте только из доверенных источников.

Отдельный случай — устройства с динамическими разделами. Если после распаковки вы получили super.img вместо отдельных system и vendor, его нужно дополнительно обработать: сначала преобразовать из sparse-формата, затем извлечь логические разделы (например, утилитой lpunpack). Это уже продвинутый сценарий для разработчиков и портировщиков прошивок.

Почему payload.bin нельзя открыть архиватором

Файл имеет собственный бинарный формат: заголовок с магической сигнатурой, таблицу операций обновления (install operations) и сами данные разделов, записанные блоками. Это не ZIP и не tar — структура описана в спецификации update_metadata.proto проекта AOSP. Поэтому 7-Zip и подобные программы либо не откроют файл, либо покажут бессмысленный набор байт.

Типичные ошибки и проблемы при работе с payload.bin

Чаще всего пользователи сталкиваются с несколькими повторяющимися ситуациями. Разберём, что проверить в каждой из них.

Утилита выдаёт ошибку при чтении файла. Возможная причина — повреждённая или недокачанная прошивка. Проверьте размер payload.bin и, если источник предоставляет контрольные суммы, сверьте хеш файла. Также убедитесь, что вы распаковали ZIP полностью, а не запускаете утилиту на файле внутри архива.

Не хватает места на диске. Распакованные образы могут занимать заметно больше, чем сам payload.bin, поскольку данные внутри сжаты. Перед началом убедитесь, что свободного пространства в несколько раз больше размера исходного файла.

Пропатченный boot.img не загружается. Здесь диагностика сложнее: возможны несовпадение версии прошивки, включённая верифицированная загрузка (AVB) или ошибка при прошивке образа. Безопасный путь — вернуть стоковый boot.img из того же payload.bin через fastboot, после чего разбираться с причиной.

⚠️ Внимание: любые действия с прошивкой разделов (fastboot flash, отключение проверки vbmeta) выполняются на ваш риск и могут привести к потере данных или невозможности загрузки устройства. Перед экспериментами сделайте резервную копию важных данных и заранее убедитесь, что у вас есть полная стоковая прошивка для восстановления именно вашей модели.
💡

Распаковка payload.bin сама по себе безопасна — это просто чтение файла на компьютере. Риск появляется на этапе прошивки извлечённых образов на устройство: здесь критичны точное соответствие версии и наличие пути отката.

Как проверить, что прошивка содержит payload.bin

Определить формат обновления можно до скачивания инструментов. Скачайте ZIP с OTA-прошивкой и откройте его любым архиватором: если в корне лежат файлы payload.bin и payload_properties.txt — перед вами A/B-формат, и для извлечения образов понадобится dumper-утилита.

Если же внутри архива сразу видны отдельные .img-файлы и скрипт прошивки (например, flash-all.bat или flash_all.sh), то это fastboot-прошивка в «классическом» виде — распаковывать ничего не нужно, образы доступны напрямую. У некоторых производителей оба вида пакетов существуют параллельно для одной модели, поэтому всегда смотрите описание конкретного файла на источнике загрузки.

Для устройств без A/B-разделов (старые модели и часть бюджетных устройств) payload.bin в обновлениях не используется вовсе — там применяются другие механизмы упаковки, зависящие от производителя.

Часто задаваемые вопросы

Можно ли прошить payload.bin напрямую через fastboot или recovery?

Нет, напрямую — нельзя. Fastboot работает с отдельными образами разделов (.img), а payload.bin — это контейнер, который нужно предварительно распаковать. На самом устройстве этот файл обрабатывает системный демон обновлений (update_engine), а не загрузчик.

Чем открыть payload.bin на Windows без командной строки?

Существуют инструменты с графическим интерфейсом, использующие те же алгоритмы распаковки. Однако консольный payload-dumper-go остаётся самым предсказуемым вариантом: он открыт, поддерживается сообществом и не требует установки. При выборе сторонних программ скачивайте их только из проверенных источников.

Безопасно ли извлекать payload.bin?

Да, сама распаковка — это обычное чтение и преобразование файла на компьютере, она никак не влияет на смартфон. Риск возникает только при последующей прошивке извлечённых образов на устройство: здесь важны точное соответствие версии и наличие способа восстановления.

Почему после распаковки нет boot.img, а есть super.img?

Возможная причина — ваше устройство использует динамические разделы. В этом случае system, vendor и ряд других разделов объединены в super.img, и для их извлечения нужен дополнительный шаг с утилитой lpunpack. При этом boot.img обычно всё равно присутствует отдельно — проверьте полный список разделов, который утилита выводит при запуске.

Можно ли из payload.bin получить прошивку для другого региона или модели?

Payload.bin строго привязан к конкретной модели и сборке. Извлечённые из него образы подходят только тому устройству, для которого выпущено обновление. Прошивка образов от другой модели или региона — частая причина bootloop и потери работоспособности, поэтому всегда сверяйте кодовое имя устройства и версию прошивки.