Файл system.new.dat.br внутри ZIP-архива прошивки Android — это сжатый алгоритмом Brotli образ системного раздела, и обычный архиватор вроде WinRAR или 7-Zip его не откроет: попытка распаковать его напрямую закончится ошибкой или битым файлом. Распаковка проходит в два этапа: сначала снятие Brotli-сжатия до system.new.dat, затем конвертация sparse-данных в полноценный образ system.img, который уже можно смонтировать или разобрать.

Ниже разберём, что именно лежит внутри такого файла, какие инструменты нужны, как выполнить распаковку на Windows и Linux и какие ошибки встречаются чаще всего. Инструкция рассчитана на пользователей, которые редактируют прошивки, извлекают приложения из образов или готовят кастомные сборки.

Что такое system.new.dat.br и зачем его распаковывать

В прошивках формата OTA (ZIP-пакеты для обновления) системный раздел хранится не как готовый образ system.img, а в виде набора файлов: system.new.dat.br (сами данные), system.transfer.list (карта блоков) и иногда system.patch.dat. Такой формат экономит место и позволяет обновлять раздел поблочно через скрипт updater-script.

Суффикс .br означает сжатие Brotli — алгоритм от Google, который производители начали применять в прошивках для уменьшения размера OTA-пакетов. В более старых прошивках вместо него встречается несжатый system.new.dat — тогда первый этап распаковки просто пропускается.

Распаковывать образ обычно нужно в таких случаях:

  • 🔧 извлечь системные приложения, библиотеки или файлы конфигурации из стоковой прошивки;
  • 🛠️ модифицировать прошивку — удалить лишние приложения, изменить build.prop;
  • 📦 собрать образ для прошивки через fastboot или кастомное рекавери;
  • 🔍 исследовать прошивку на предмет уязвимостей или скрытых функций.
💡

system.new.dat.br — это не архив, а сжатый Brotli поток данных раздела. Архиваторы его не открывают: нужна цепочка brotli → sdat2img.

Необходимые инструменты

Для полной цепочки распаковки потребуется немного программ, и все они бесплатны. Состав набора слегка различается в зависимости от операционной системы.

  • 💻 Brotli — официальная консольная утилита для снятия .br-сжатия; есть сборки под Windows и Linux;
  • 🐍 Python — нужен для запуска скрипта конвертации; подойдёт актуальная версия ветки 3.x;
  • 📄 sdat2img.py — открытый скрипт, преобразующий system.new.dat в system.img по карте из system.transfer.list;
  • 🗂️ инструмент для просмотра образа — например, DiskInternals Linux Reader на Windows или обычное монтирование ext4 на Linux.

Обратите внимание: скрипт sdat2img распространяется через репозитории энтузиастов (например, на GitHub), и скачивать его стоит только из известных источников, проверяя содержимое перед запуском — это обычный текстовый Python-файл, который легко прочитать.

💡

Перед началом работы скопируйте system.new.dat.br, system.transfer.list и system.patch.dat в отдельную папку с коротким путём без кириллицы и пробелов — это избавит от половины ошибок с путями.

Этап 1: снятие Brotli-сжатия

Первый шаг — превратить system.new.dat.br в system.new.dat. Для этого используется консольная утилита brotli с ключом декомпрессии. Команда выглядит так:

brotli --decompress system.new.dat.br

После завершения рядом появится файл system.new.dat, заметно больший по размеру, чем исходник — это нормально, ведь сжатие снято. Если утилита выдаёт ошибку формата, проверьте, не повреждён ли файл при скачивании прошивки: перекачайте архив и сравните размер с указанным на источнике.

Возможная альтернатива — некоторые сборки и скрипты-распаковщики (например, комплексные инструменты для разборки прошивок) вызывают brotli автоматически. Но ручной запуск надёжнее: вы видите результат каждого шага и понимаете, на каком этапе возникла проблема.

⚠️ Внимание: не переименовывайте файл .br в .zip и не пытайтесь открыть его архиватором. Brotli-поток не является ZIP-архивом, и «успешно открывшийся» файл в таком случае будет повреждён с первых байт.

Этап 2: конвертация в system.img через sdat2img

Файл system.new.dat — это ещё не готовый образ, а поток блоков данных. Чтобы собрать из него system.img, скрипту нужна карта расположения блоков — файл system.transfer.list из того же архива прошивки. Оба файла должны лежать рядом.

python sdat2img.py system.transfer.list system.new.dat system.img

Порядок аргументов важен: сначала transfer-лист, затем dat-файл, последним — имя выходного образа. Если перепутать первые два аргумента местами, скрипт завершится с ошибкой или создаст пустой файл. Успешный результат — образ system.img размером, близким к размеру системного раздела устройства.

☑️ Проверка перед запуском sdat2img

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

Что делать, если конвертация не идёт? Сначала проверьте, что system.transfer.list и system.new.dat взяты из одной и той же прошивки — смешение файлов от разных версий гарантированно даёт битый образ. Затем убедитесь, что Python видит скрипт: запускайте команду из папки, где лежит sdat2img.py, или укажите полный путь к нему.

Этап 3: монтирование и извлечение содержимого

Полученный system.img — это образ файловой системы ext4 (в некоторых новых прошивках может встречаться erofs — тогда понадобятся отдельные утилиты для этой ФС). Способ открытия зависит от вашей системы.

ОСИнструментДействиеРежим
Linuxmount (loop)Монтирование образа в папкуЧтение и запись при remount
WindowsDiskInternals Linux ReaderОткрытие образа как дискаТолько чтение и копирование
Windows7-Zip (для части образов)Открытие как архиваТолько чтение, работает не всегда
Linuxdebugfs / e2fsprogsИзвлечение файлов без монтированияЧтение, правка отдельных файлов

На Linux монтирование выполняется стандартной командой sudo mount -o loop system.img /mnt/system, после чего содержимое доступно как обычная папка. На Windows проще всего скопировать нужные файлы через Linux Reader — программа бесплатна и не требует установки драйверов.

Если образ отказывается монтироваться, проверьте его тип командой file system.img на Linux: она покажет, ext4 это, erofs или что-то иное. Для erofs существуют отдельные инструменты извлечения, и универсальной гарантии совместимости нет — сверяйтесь с документацией к конкретному инструменту.

📊 С какой целью вы распаковываете system.new.dat.br?
Извлечь приложения или файлы из прошивки
Модифицировать и пересобрать прошивку
Исследовать прошивку (анализ, безопасность)
Просто разбираюсь из интереса

Типичные ошибки и их решение

Чаще всего распаковка ломается на предсказуемых местах. Разберём основные сценарии без привязки к конкретным версиям утилит — симптомы универсальны.

Ошибка «corrupt input» от brotli. Файл повреждён при скачивании или это вовсе не Brotli-поток. Перекачайте прошивку, проверьте контрольную сумму архива, если источник её публикует. Иногда помогает распаковка ZIP другим архиватором — часть архивов оказывается битой из-за неполной загрузки.

sdat2img завершается с traceback. Проверьте версию Python (нужна третья ветка), порядок аргументов и целостность system.transfer.list — он должен открываться как текстовый файл и начинаться с номера версии формата. Если transfer-лист пустой или обрезанный, прошивка скачана не полностью.

Образ создан, но пустой или не монтируется. Возможная причина — несоответствие dat-файла и transfer-листа (файлы от разных сборок) либо неподдерживаемая файловая система внутри образа. Проверьте тип ФС и попробуйте альтернативный инструмент чтения.

⚠️ Внимание: если вы распаковываете прошивку для последующей модификации и перепрошивки устройства, помните — установка изменённого образа может привести к неработоспособности аппарата и потере гарантии. Всегда сохраняйте оригинальные файлы прошивки и имейте способ вернуть стоковое состояние.
Что делать с vendor.new.dat.br и другими разделами

Та же самая цепочка работает и для других разделов прошивки — vendor, product, odm, system_ext. Для каждого из них в архиве лежат свои .new.dat.br (или .new.dat) и .transfer.list, и распаковываются они независимо друг от друга теми же командами brotli и sdat2img с подстановкой соответствующих имён файлов.

Обратная сборка и перепаковка

Задача, обратная распаковке, — собрать изменённый образ обратно в прошиваемый вид. Здесь честно обозначим границу: универсальной «одной команды» не существует. Для превращения отредактированного образа в формат, который примет updater-script, используются утилиты img2simg и img2sdat из набора Android-инструментов, а сжатие обратно в .br выполняется тем же brotli с ключом компрессии.

Однако для большинства практических задач перепаковка в OTA-формат не нужна: изменённый system.img проще прошить напрямую через fastboot или подписать в составе кастомного ZIP для рекавери. Полная обратная сборка OTA требуется редко — в основном разработчикам, готовящим пакеты OTA-обновлений, и там процедура зависит от версии сборочных инструментов Android.

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

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

Распаковка system.new.dat.br — безопасная операция над файлами на ПК. Риск появляется только на этапе записи изменённого образа обратно в устройство.

FAQ: частые вопросы по распаковке

Можно ли открыть system.new.dat.br программой 7-Zip или WinRAR?

Нет. Расширение .br — это формат сжатия Brotli, а не архив. Нужна консольная утилита brotli, которая снимает сжатие и выдаёт файл system.new.dat для дальнейшей конвертации.

Чем отличается system.new.dat от system.new.dat.br?

Это один и тот же контент в разной упаковке: .br — версия, сжатая Brotli для уменьшения размера прошивки. После декомпрессии получается обычный system.new.dat, и дальнейшая обработка идентична.

Обязателен ли файл system.transfer.list?

Да, для конвертации через sdat2img он обязателен — скрипт берёт из него карту расположения блоков. Без корректного transfer-листа собрать рабочий system.img из dat-файла не получится.

Можно ли распаковать прошивку прямо на смартфоне?

Теоретически Python и часть утилит запускаются в окружениях вроде Termux, но на практике это неудобно: большие файлы, ограничения памяти и прав доступа. Надёжнее выполнять распаковку на компьютере.

Почему распакованный system.img больше исходного .br-файла в несколько раз?

Это нормально. Brotli эффективно сжимает данные, а dat-формат хранит только занятые блоки. Итоговый образ соответствует полному размеру системного раздела, включая свободное место.