Файл payload.bin обнаруживается внутри ZIP-архива с OTA-обновлением Android, когда пользователь скачивает прошивку для устройств с A/B-разметкой разделов — например, для смартфонов Google Pixel, Xiaomi, OnePlus и многих других. При попытке открыть его как обычный образ системы ничего не происходит: это не готовый файл для прошивки, а контейнер специального формата, из которого нужно предварительно извлечь образы разделов.
Чаще всего с payload.bin сталкиваются при поиске файла boot.img для получения root-прав через Magisk: в современных прошивках его больше нет в открытом виде, и единственный способ достать образ — распаковать payload. Ниже разберём, что представляет собой этот файл, как устроен и какими инструментами его открывают.
Что такое payload.bin и зачем он нужен
Payload.bin — это бинарный контейнер, в котором упакованы образы разделов прошивки (boot, system, vendor, product и другие) вместе со служебными данными для OTA-обновления. Формат разработан Google для механизма бесшовных обновлений A/B (seamless updates), появившегося в Android 7.1 и ставшего стандартом для большинства современных устройств.
Идея A/B-разметки в том, что на устройстве существует два набора системных разделов: активный слот, с которого работает система, и неактивный, куда в фоне записывается обновление. Файл payload.bin содержит всё необходимое для записи новых образов в неактивный слот — либо полные образы разделов (полное обновление), либо только отличия от текущей версии (инкрементальное обновление).
Именно поэтому внутри OTA-пакета вы не найдёте привычных файлов system.img или boot.img по отдельности — все они собраны в единый поток данных внутри payload.bin, а структура этого потока описана в сопутствующем файле payload_properties.txt и встроенном манифесте.
Что находится внутри файла
Структура payload.bin описывается открытой спецификацией в исходном коде Android (компонент update_engine). В начале файла расположен заголовок с магической сигнатурой, версией формата и размером манифеста. Манифест — это блок данных в формате protobuf, где перечислены все разделы, их размеры, хеши и операции установки.
После манифеста идут сами данные — блоки образов разделов, которые могут храниться в сжатом виде. При распаковке из файла обычно извлекаются следующие образы:
- 🧩 boot.img — ядро и ramdisk, нужен для патча через Magisk и получения root;
- 🧩 system.img — основной раздел с операционной системой;
- 🧩 vendor.img — драйверы и компоненты производителя;
- 🧩 product.img, system_ext.img — дополнительные разделы современных версий Android;
- 🧩 vbmeta.img, dtbo.img и другие служебные разделы.
Точный набор разделов зависит от конкретной модели устройства и версии прошивки — универсального списка не существует. Проверить, какие именно образы содержатся в вашем файле, можно только в процессе распаковки: инструменты выводят список разделов из манифеста.
Как открыть и распаковать payload.bin
Стандартные архиваторы вроде 7-Zip или WinRAR с payload.bin не справятся — формат не является архивом в привычном смысле. Для извлечения используются специализированные инструменты, самый известный из которых — payload-dumper-go, а также Python-скрипты на базе библиотеки update_payload.
Общий порядок действий выглядит так. Сначала скачайте OTA-пакет прошивки именно для вашей модели и региона устройства — с официального сайта производителя или из проверенного источника. Откройте ZIP-архив и извлеките из него файл payload.bin в отдельную папку.
Затем запустите инструмент распаковки, указав путь к файлу. Пример команды для payload-dumper-go:
payload-dumper-go -o ./extracted payload.bin
После завершения в указанной папке появятся образы разделов в формате .img. Для получения root обычно достаточно извлечь только boot-раздел — многие инструменты позволяют указать конкретный раздел, чтобы не распаковывать всё:
payload-dumper-go -p boot -o ./extracted payload.bin
☑️ Подготовка к распаковке payload.bin
⚠️ Внимание: образы разделов после распаковки могут занимать несколько гигабайт — убедитесь, что на диске достаточно свободного места. Также критично использовать payload.bin от той же версии прошивки, что установлена на устройстве: прошивка boot-образа от другой версии может привести к невозможности загрузки.
Чем отличается полное и инкрементальное обновление
Внутри payload.bin может быть два типа данных, и различие между ними важно понимать перед распаковкой. Полное (full) OTA содержит целые образы всех разделов — такой файл можно полностью распаковать и получить готовые .img для прошивки через fastboot.
Инкрементальное (incremental) OTA содержит только разницу между конкретной старой версией прошивки и новой. Из такого файла нельзя извлечь полноценные образы без исходной системы — операции в манифесте описывают, какие блоки заменить в уже существующих разделах устройства. Для задач вроде извлечения boot.img инкрементальный пакет не подходит: нужен полный OTA-пакет.
| Параметр | Полное OTA | Инкрементальное OTA |
|---|---|---|
| Содержимое payload.bin | Полные образы разделов | Только отличия от базовой версии |
| Размер файла | Большой (вся прошивка) | Заметно меньше |
| Извлечение boot.img | Возможно напрямую | Невозможно без исходной системы |
| Требование к версии | Любая текущая версия | Строго конкретная базовая версия |
Типичные проблемы при работе с payload.bin
Одна из частых ошибок — попытка прошить payload.bin напрямую через fastboot flash. Утилита fastboot работает с образами разделов, а не с OTA-контейнерами, поэтому команда либо завершится ошибкой, либо запишет данные некорректно. Сначала распакуйте файл и прошивайте отдельные .img по инструкции для вашей модели.
Вторая проблема — распаковка обрывается с ошибкой или образы получаются битого размера. Возможные причины: повреждённый при скачивании архив (проверьте контрольную сумму, если она опубликована источником), нехватка места на диске или попытка распаковать инкрементальный пакет как полный. Перекачайте файл и повторите попытку.
Почему в некоторых прошивках нет payload.bin
Устройства без A/B-разметки (старые модели и часть бюджетных аппаратов) получают обновления в классическом формате — с образами разделов прямо в ZIP или с файлами вида system.new.dat, system.transfer.list и патчами. Там payload.bin отсутствует, а извлечение образов делается другими инструментами, например sdat2img. Проверить тип разметки можно по документации устройства или по наличию суффиксов _a/_b в названиях разделов.
Ещё один нюанс касается устройств с динамическими разделами (dynamic partitions): system, vendor и product в них объединены в один суперраздел super. В payload.bin таких прошивок соответствующие образы предназначены для записи внутрь super, и прошивать их по старой схеме в отдельные разделы нельзя — используйте fastbootd-режим и инструкции производителя.
⚠️ Внимание: прошивка извлечённых образов — потенциально рискованная операция. Неправильный образ или нарушение порядка действий могут привести к незагружающемуся устройству. Перед любыми действиями сделайте резервную копию важных данных и строго следуйте инструкции для вашей конкретной модели.
Безопасность и источники файлов
Скачивать OTA-пакеты стоит только из доверенных источников: официальный сайт производителя, встроенное средство обновления устройства либо известные каталоги прошивок с проверкой подлинности. Файлы с непонятных файлообменников могут быть модифицированы, а прошивка такого содержимого — прямой путь к компрометации устройства.
⚠️ Внимание: модифицированный boot-образ (например, пропатченный Magisk) отключает часть механизмов проверки целостности системы. Это осознанный компромисс: root-доступ расширяет возможности, но снижает защищённость устройства и может нарушить работу банковских приложений и платёжных сервисов.
Дополнительная проверка — сравнение хешей. Некоторые производители публикуют контрольные суммы OTA-пакетов, а сам payload.bin внутри содержит подписи операций обновления, которые устройство проверяет перед установкой. Если вы распаковываете файл вручную, эта встроенная защита не срабатывает, поэтому ответственность за подлинность источника полностью на вас.
Часто задаваемые вопросы
Можно ли прошить payload.bin через fastboot напрямую?
Нет. Fastboot работает с образами отдельных разделов (.img), а payload.bin — контейнер, который сначала нужно распаковать специальным инструментом, например payload-dumper-go.
Чем открыть payload.bin на Windows?
Архиваторы этот формат не поддерживают. Используйте payload-dumper-go (консольная утилита, есть сборки под Windows) или Python-скрипты на базе update_payload. Графические оболочки также существуют, но консольный вариант — самый предсказуемый.
Почему при распаковке не появляется boot.img?
Вероятные причины: вы скачали инкрементальное OTA вместо полного, либо распаковка прервалась из-за нехватки места или повреждённого файла. Проверьте тип пакета и перекачайте архив.
Payload.bin и payload_dumper — это одно и то же?
Нет. Payload.bin — сам файл-контейнер из OTA-пакета, а payload-dumper (и его вариант payload-dumper-go) — инструменты для извлечения из него образов разделов.
Безопасно ли скачивать payload.bin со сторонних сайтов?
Только если источник заслуживает доверия и публикует оригинальные, неизменённые OTA-пакеты. При ручной распаковке встроенная проверка подписи не работает, поэтому предпочтительны официальные каналы производителя.