Для прошивки дополнительных ZIP перезагрузите рекавери для переключения на обновлённый слот

Строка «для прошивки дополнительных ZIP перезагрузите рекавери для переключения на обновлённый слот» появляется в инструкциях к кастомным прошивкам LineageOS, crDroid, Pixel Experience и других сборок для смартфонов с разметкой A/B (seamless updates). Если проигнорировать этот шаг и сразу прошить GApps, Magisk или другие пакеты, они запишутся не в тот слот — и после перезагрузки система либо загрузится без них, либо вообще уйдёт в бутлуп.

Проблема возникает из-за самой архитектуры двух разделов: пока вы прошиваете ROM через рекавери, файлы записываются в неактивный слот, а само рекавери продолжает работать со старым активным. Без перезапуска рекавери логика «какой слот сейчас целевой» не обновляется, и все последующие ZIP улетают в уже устаревший раздел. Ниже разберём, как это работает и как выполнить процедуру без ошибок.

Что такое A/B-разметка и зачем нужны два слота

Смартфоны с поддержкой бесшовных обновлений хранят две копии системных разделов: slot A и slot B. Каждый слот содержит собственные копии разделов boot, system, vendor и других. В любой момент времени активен только один слот — именно с него загружается устройство.

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

Важный нюанс: у большинства A/B-устройств нет отдельного раздела recovery. Рекавери живёт внутри загрузочного образа, поэтому после прошивки нового ROM старое рекавери фактически заменяется новым из только что записанного слота. Чтобы его загрузить, и требуется перезагрузка.

  • 📱 Slot A и Slot B — две полные копии системных разделов
  • 🔄 Прошивка всегда пишется в неактивный слот
  • 🛡️ При сбое загрузчик автоматически откатывается на рабочий слот
  • 📦 Рекавери обычно встроено в boot-образ, а не в отдельный раздел

Почему нельзя прошивать дополнительные ZIP сразу после ROM

Кастомные пакеты вроде GApps, Magisk или модов ядра при установке через рекавери ориентируются на текущий активный слот, который видит запущенное рекавери. Активным в момент прошивки остаётся старый слот — тот, с которого вы загрузились в рекавери. Новый ROM при этом лежит в соседнем, ещё не активированном слоте.

Если прошить GApps без перезагрузки рекавери, установщик запишет файлы в старый слот поверх прежней системы. Результат предсказуем: свежепрошитый ROM стартует чистым, без сервисов Google, а модифицированный старый слот больше никогда не загрузится. В худшем случае повреждение старого слота лишает вас запасного варианта для отката.

⚠️ Внимание: прошивка дополнительных ZIP до переключения слота — самая частая причина ситуации «прошил GApps, а их нет». Перед установкой любых пакетов после ROM убедитесь, что рекавери было перезагружено и работает уже с обновлённого слота.

Пошаговая инструкция: правильный порядок прошивки

Общая последовательность для A/B-устройств выглядит одинаково у большинства кастомных прошивок, хотя названия пунктов меню в разных рекавери могут отличаться. Сверяйтесь с инструкцией конкретной сборки для вашей модели.

Порядок действий:

  • 1️⃣ Загрузитесь в рекавери (например, fastboot boot recovery.img или через комбинацию кнопок — зависит от модели)
  • 2️⃣ Выполните Format data / factory reset, если этого требует инструкция к прошивке
  • 3️⃣ Прошейте ZIP с ROM через Apply updateApply from ADB командой adb sideload rom.zip
  • 4️⃣ Вернитесь в главное меню и выберите Reboot to recovery — именно этот шаг переключает слот
  • 5️⃣ После перезагрузки рекавери прошейте дополнительные ZIP: GApps, Magisk и т.д.
  • 6️⃣ Перезагрузитесь в систему через Reboot system now

Команда для sideload на компьютере выглядит так:

adb sideload lineage-rom.zip

☑️ Проверка перед прошивкой дополнительных ZIP

Выполнено: 0 / 5
📊 С какой проблемой вы сталкивались при прошивке A/B-устройства?
GApps прошились, но не появились в системе
Бутлуп после прошивки ZIP
Не мог найти пункт Reboot to recovery
Всё прошло гладко

Что именно происходит при перезагрузке рекавери

Пункт Reboot to recovery в меню — это не просто перезапуск среды восстановления. Во время него загрузчик считывает обновлённые метаданные слотов: прошивальщик после записи ROM помечает новый слот как активный и загрузочный. Перезагрузка заставляет устройство стартовать с этого слота, а поскольку рекавери встроено в его boot-раздел, вы попадаете уже в новое рекавери из свежепрошитой системы.

Теперь, когда рекавери работает с обновлённого слота, любой прошиваемый ZIP будет установлен именно туда — в ту же копию системы, что и ROM. Именно поэтому порядок «ROM → перезагрузка рекавери → дополнительные ZIP» является обязательным, а не рекомендательным.

Типичные ошибки и как их избежать

Одна из распространённых ошибок — выбор Reboot system now вместо Reboot to recovery после прошивки ROM. Система загрузится, но без GApps и рута, а вернуться в рекавери придётся заново через fastboot или комбинацию кнопок. Это не критично, но тратит время, а при отсутствии boot-образа под рукой может стать проблемой.

Вторая ошибка — попытка прошить пакеты «пачкой» одним списком до перезагрузки. Некоторые рекавери позволяют выстроить очередь ZIP, но на A/B-устройствах такая очередь всё равно обрабатывается в контексте старого активного слота, если инструкция к прошивке явно не предусматривает иное.

ОшибкаПоследствиеКак исправить
ZIP прошит без перезагрузки рекавериПакет записан в старый слот, в новой системе его нетПерезагрузиться в рекавери с нового слота и прошить ZIP повторно
Выбран Reboot system вместо Reboot to recoveryНужно заново входить в рекавериЗагрузиться в рекавери через fastboot или кнопки
Прошивка несовместимой версии GAppsБутлуп или вылеты сервисовИспользовать пакет под нужную версию Android, указанную в инструкции
Рекавери «слегло» после прошивкиНет доступа к среде восстановленияЗагрузить рекавери через fastboot boot

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

Как проверить, какой слот сейчас активен

Подключите телефон к ПК в режиме fastboot и выполните команду fastboot getvar current-slot. В ответ вы получите значение вида a или b. Это помогает убедиться, что после прошивки ROM активность действительно переключилась на другой слот.

Особенности TWRP и стоковых рекавери на A/B-устройствах

В TWRP на устройствах с двумя слотами обычно есть отдельный пункт для просмотра и смены активного слота — часто в разделе Reboot. Там можно вручную выбрать Slot A или Slot B, после чего TWRP перезагрузится. Это альтернатива штатному Reboot to recovery, но логика та же: сначала переключение, потом прошивка дополнительных пакетов.

В штатных рекавери кастомных прошивок (например, LineageOS Recovery) ручного выбора слота нет — переключение выполняется автоматически при перезагрузке в рекавери после успешной установки обновления. Поэтому в их инструкциях шаг сформулирован именно как «перезагрузите рекавери», без упоминания слотов.

Что делать, если дополнительные ZIP уже прошиты не в тот слот

Ситуация исправима, и паниковать не нужно. Поскольку пакеты записались в старый слот, новая система осталась нетронутой — достаточно правильно повторить установку. Загрузитесь в рекавери так, чтобы оно стартовало с обновлённого слота (через Reboot to recovery из текущего рекавери или ручное переключение слота в TWRP), и прошейте нужные ZIP заново.

Старый слот при этом останется модифицированным, но это не страшно: при следующем обновлении системы он всё равно будет полностью перезаписан. Главное — не пытайтесь «починить» его вручную, пока не убедитесь, что новая система стабильно загружается.

⚠️ Внимание: если после всех манипуляций устройство не загружается ни с одного слота, используйте заводские образы прошивки от производителя и инструкцию по восстановлению для вашей модели. Работа со слотами через fastboot --set-active допустима только при полном понимании того, какой слот содержит рабочую систему.

Команды fastboot для работы со слотами

Посмотреть активный слот — fastboot getvar current-slot. Переключить слот вручную — fastboot --set-active=a или fastboot --set-active=b. Используйте ручное переключение только если уверены, что целевой слот содержит рабочую систему.

Частые вопросы

Обязательно ли перезагружать рекавери, если я прошиваю только ROM без дополнительных ZIP?

Нет. Если после прошивки ROM ничего больше устанавливать не планируется, можно сразу выбирать Reboot system now — загрузчик сам переключится на обновлённый слот. Перезагрузка рекавери нужна только для установки дополнительных пакетов.

Как понять, что слот переключился после перезагрузки рекавери?

Косвенный признак — рекавери загрузилось заново, иногда с другим интерфейсом или версией (если новый ROM несёт своё рекавери). Точную проверку даёт команда fastboot getvar current-slot в режиме fastboot.

Работает ли эта инструкция для устройств без A/B-разметки?

Нет. На устройствах с одним системным разделом (A-only) слотов нет, и шаг с перезагрузкой рекавери для переключения слота не требуется. Там дополнительные ZIP прошиваются сразу после ROM в той же сессии рекавери.

Можно ли прошить Magisk до перезагрузки рекавери, а GApps — после?

Нет, оба пакета должны устанавливаться в тот же слот, что и ROM — то есть после перезагрузки рекавери. Иначе один из них окажется в старом слоте и не попадёт в загружаемую систему.

Что будет, если перезагрузить рекавери дважды?

Ничего страшного — повторная перезагрузка просто снова загрузит рекавери с того же активного слота. Слот сам по себе от этого не переключится, пока не будет прошито новое обновление.