Команда fastboot set_active a — именно она переключает активный слот на устройствах с разметкой A/B (seamless updates), когда смартфон после прошивки уходит в бутлуп или загружается в fastboot вместо системы. Такая ситуация типична для Google Pixel, Xiaomi, OnePlus и других аппаратов с двойным набором разделов: прошивка записалась в неактивный слот, а загрузчик продолжает стартовать со старого.
Ниже разберём, что такое слоты A и B, как проверить текущий активный слот, как переключить его через fastboot и что делать, если команда возвращает ошибку. Инструкция подходит для ПК с установленными Android SDK Platform-Tools и работает одинаково в Windows, Linux и macOS.
Что такое слоты A и B и зачем их переключать
Современные Android-устройства с поддержкой бесшовных обновлений хранят две копии системных разделов: слот A и слот B. Каждый слот включает свои версии разделов boot, system, vendor и других. Когда приходит OTA-обновление, оно записывается в неактивный слот, и после перезагрузки устройство переключается на него. Если новая система не загрузилась, загрузчик автоматически откатывается на прежний слот.
Смена слота вручную нужна в нескольких ситуациях:
- 🔄 после ручной прошивки через fastboot система записалась в неактивный слот;
- 🧱 устройство зависло в бутлупе, а на втором слоте осталась рабочая прошивка;
- 🛠️ при установке кастомной прошивки или Magisk требуется явно указать целевой слот;
- ↩️ нужно откатиться на старую версию системы после неудачного обновления.
Важно понимать: переключение слота не стирает данные и не меняет содержимое разделов. Меняется только флаг в загрузчике, указывающий, откуда стартовать при следующей загрузке.
Подготовка: драйверы, Platform-Tools и режим fastboot
Прежде чем выполнять команды, убедитесь, что компьютер видит устройство. Вам понадобится актуальный пакет Android SDK Platform-Tools с официального сайта Google — именно в нём находится утилита fastboot. В Windows дополнительно могут потребоваться USB-драйверы производителя (например, Google USB Driver для Pixel).
Переведите смартфон в режим fastboot одним из способов:
- ⚙️ через включённое устройство командой
adb reboot bootloader; - 🔘 аппаратной комбинацией кнопок — она различается у разных производителей, поэтому сверьтесь с инструкцией для вашей модели;
- 📟 из меню recovery, если там есть пункт перехода в bootloader.
Подключите устройство кабелем к ПК и проверьте связь командой:
fastboot devices
Если в ответе появился серийный номер устройства — соединение работает, можно переходить к смене слота. Пустой ответ означает проблему с драйверами, кабелем или портом USB.
⚠️ Внимание: используйте оригинальный или качественный USB-кабель и подключайтесь напрямую к порту компьютера, без хабов. Обрыв соединения во время прошивки разделов может привести к незагружающемуся устройству.
Как узнать текущий активный слот
Перед переключением полезно выяснить, какой слот активен сейчас. Для этого выполните команду:
fastboot getvar current-slot
В ответе будет строка вида current-slot: a или current-slot: b. На некоторых устройствах вместо этого работает более общий запрос fastboot getvar all, который выводит все переменные загрузчика, включая информацию о слотах и их состоянии.
Дополнительно загрузчик может сообщать, какие слоты помечены как загружаемые (bootable) и успешные (successful). Эти флаги помогают понять, почему устройство отказывается стартовать: если слот отмечен как незагружаемый, простое переключение на него может не помочь.
Команда смены слота: пошаговая инструкция
Сама процедура переключения занимает несколько секунд. Выполните шаги по порядку:
☑️ Смена слота в fastboot
Шаг 1. Убедитесь, что устройство определяется: fastboot devices.
Шаг 2. Отправьте команду переключения на нужный слот:
fastboot set_active a
или, если нужен второй слот:
fastboot set_active b
Шаг 3. Дождитесь ответа OKAY и перезагрузите устройство:
fastboot reboot
Если на новом слоте стоит рабочая система, устройство загрузится в неё. На некоторых прошивках вместо set_active используется альтернативный синтаксис fastboot --set-active=a — обе формы выполняют одну и ту же операцию.
Типичные ошибки и их решения
Не всегда команда проходит гладко. Вот распространённые проблемы и способы их обойти.
| Ошибка или симптом | Вероятная причина | Что делать |
|---|---|---|
fastboot devices ничего не показывает | Нет драйверов, плохой кабель или порт | Установить драйверы, сменить кабель и порт USB |
FAILED (remote: unknown command) | Старая версия fastboot или загрузчик не поддерживает команду | Обновить Platform-Tools, попробовать синтаксис --set-active=a |
FAILED (remote: slot change is not allowed) | Загрузчик заблокирован | Разблокировать bootloader официальным способом производителя |
| Устройство не грузится после смены слота | Целевой слот пуст или система повреждена | Вернуться в fastboot и переключить слот обратно |
| Постоянный откат слота на прежний | Механизм rollback защиты отката | Прошить оба слота одинаковой прошивкой |
⚠️ Внимание: разблокировка загрузчика на большинстве устройств стирает все пользовательские данные и может повлиять на гарантию. Выполняйте её только официальным способом, предусмотренным производителем, и заранее сохраните важные файлы.
Смена слота при прошивке устройства
На практике переключение слота чаще всего идёт в связке с прошивкой. Типовой сценарий: вы прошиваете образы командой fastboot flash boot boot.img и аналогичными, но забываете, что запись идёт в текущий активный слот. После перезагрузки загрузчик может стартовать с другого слота, где осталась старая система.
Чтобы избежать путаницы, действуйте так: сначала переключитесь на целевой слот командой fastboot set_active, затем прошивайте разделы, и только потом перезагружайтесь. Либо прошивайте оба слота последовательно — этот подход рекомендуется, когда нужно гарантированно избавиться от старой системы на обоих разделах.
Часть прошивальных скриптов (например, flash-all у Google Pixel) уже содержит автоматическое переключение слота внутри сценария. Если вы запускаете готовый скрипт от производителя, вручную ничего менять не требуется.
Зачем прошивать оба слота
Если прошить только один слот, на втором останется старая система. При срабатывании механизма отката или случайном переключении устройство может загрузиться в устаревшую или несовместимую прошивку. Прошивка обоих слотов одинаковыми образами исключает этот сценарий и упрощает дальнейшие OTA-обновления.
⚠️ Внимание: перед прошивкой всегда используйте образы, предназначенные строго для вашей модели и ревизии устройства. Прошивка чужого образаbootилиvbmeta— частая причина «кирпича», который сложно восстановить без сервисного центра.
Что делать, если ни один слот не загружается
Если после переключения оба слота уходят в бутлуп, проблема глубже, чем неверный активный слот. Возможные причины: повреждённые разделы boot или system на обоих слотах, несовместимая версия прошивки, сработавшая защита Android Verified Boot.
Безопасный порядок действий в этом случае:
- 🔁 вернитесь в fastboot и переключите слот обратно, чтобы исключить ошибку выбора;
- 📥 загрузите полный заводской образ (factory image) именно для вашей модели с официального источника;
- 🧩 прошейте разделы заново, начиная с
boot, и проверьте загрузку; - 🧾 если устройство поддерживает recovery, попробуйте установку OTA-пакета через
adb sideload.
Если и это не помогает, дальнейшие шаги зависят от конкретной модели: у разных производителей свои сервисные режимы и утилиты восстановления. Здесь разумно обратиться к официальной документации производителя или в сервисный центр, а не экспериментировать с непроверенными образами.
FAQ: частые вопросы о слотах в fastboot
Как проверить, есть ли на моём устройстве разметка A/B?
Выполните в fastboot команду fastboot getvar current-slot. Если она возвращает значение a или b — устройство использует A/B-разметку. Также можно проверить из системы: в терминале с root-правами команда getprop ro.boot.slot_suffix покажет активный слот.
Удалятся ли мои данные при смене слота?
Нет. Команда fastboot set_active меняет только флаг загрузочного слота и не затрагивает раздел userdata. Данные стираются при разблокировке загрузчика или при прошивке с опцией очистки (-w).
Что делать, если команда set_active возвращает ошибку?
Сначала обновите Platform-Tools до актуальной версии и попробуйте альтернативный синтаксис fastboot --set-active=a. Если загрузчик отвечает отказом — вероятно, он заблокирован, и смена слота станет доступна только после официальной разблокировки.
Можно ли сменить слот без компьютера?
На некоторых устройствах смена слота доступна через стоковое recovery или через приложения с root-доступом (например, функции переключения слота есть в Magisk при установке OTA). Универсального способа нет — наличие такой опции зависит от модели и прошивки.
Почему устройство само переключает слот обратно?
Так работает механизм защиты от неудачных обновлений: если система на новом слоте не смогла загрузиться и пройти проверку, загрузчик помечает слот как нерабочий и возвращается к предыдущему. Это штатное поведение A/B-разметки, а не неисправность.