adb reboot, обычная перезагрузка:
Код: Выделить всё
adb rebootКоманда идет через adbd, поэтому требует включенной отладки по USB и авторизованного подключения (глава 3). Если устройств несколько, обязателен флаг -s:
Код: Выделить всё
adb -s R58M45XKWWB rebootКод: Выделить всё
adb reboot
error: more than one device/emulatorКод: Выделить всё
adb shell rebootЦелевые режимы: bootloader и recovery:
adb reboot принимает аргумент, который init передает загрузчику как цель перезагрузки.
Код: Выделить всё
adb reboot bootloaderКод: Выделить всё
fastboot devices
1A2B3C4D5E6F fastbootКод: Выделить всё
adb reboot recoveryСвязка для накатывания OTA-пакета без ковыряния в меню:
Код: Выделить всё
adb reboot sideloadКод: Выделить всё
adb sideload ota-update.zip
serving: 'ota-update.zip' (~47%)На устройствах с динамическими разделами (Android 10+, то есть почти весь парк 2026 года) есть еще одна цель:
Код: Выделить всё
adb reboot fastbootПро цель system. В официальной справке adb ее нет. Команда adb reboot system на большинстве устройств отработает как обычная перезагрузка, потому что незнакомую причину загрузчик игнорирует и грузит систему. Полагаться на это не надо, пишите просто adb reboot. А вот fastboot reboot system внутри fastbootd вполне легален.
Выключение: adb reboot -p:
Код: Выделить всё
adb reboot -pКод: Выделить всё
adb shell reboot -pКод: Выделить всё
for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
adb -s "$s" reboot -p
doneПосле adb reboot скрипт бежит дальше мгновенно, а устройства на шине нет секунд 30-60. Любая следующая команда упадет с error: no devices/emulators found. Лекарство:
Код: Выделить всё
adb wait-for-deviceКод: Выделить всё
adb wait-for-recovery
adb wait-for-usb-device
adb wait-for-disconnectПодвох номер два, классика автоматизации: wait-for-device отпускает скрипт, как только поднялся adbd, а это происходит еще на бутанимации. Ставить пакеты и запускать тесты рано. Правильный паттерн:
Код: Выделить всё
adb reboot
adb wait-for-device
until [ "$(adb shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" = "1" ]; do
sleep 1
done
echo "boot completed"wait-for-device можно склеить с другой командой в одну строку:
Код: Выделить всё
adb wait-for-device shell getprop ro.build.version.release
15Код: Выделить всё
adb get-state
deviceКод: Выделить всё
if adb get-state >/dev/null 2>&1; then
echo "device online"
fiКод: Выделить всё
adb get-serialno
R58M45XKWWBКод: Выделить всё
SERIAL=$(adb get-serialno)
adb -s "$SERIAL" rebootСпецифика производителей:
Pixel, Motorola, Sony ведут себя эталонно, все цели работают как описано выше. У Xiaomi/Redmi/POCO команды bootloader и recovery работают, но стоковое рекавери сильно урезано. На их Qualcomm-моделях существует adb reboot edl, аварийный режим Emergency Download (черный экран, в диспетчере устройств появляется Qualcomm HS-USB QDLoader 9008), однако на актуальных прошивках команда обычно заблокирована и телефон просто перезагрузится в систему. На многих MediaTek-аппаратах fastboot-режим отключен вендором, adb reboot bootloader выполняется без ошибки, но девайс грузится в систему.
Samsung и Download Mode:
У Samsung нет fastboot в принципе. Роль загрузчика играет Download Mode (он же Odin Mode), и прошивают его не через fastboot, а утилитой Odin под Windows или открытой кроссплатформенной Heimdall. Вход из adb:
Код: Выделить всё
adb reboot downloadЕсли система не грузится и adb недоступен, вход кнопками на актуальных моделях без кнопки Home (Galaxy S20 и новее, свежие A-серии): выключить телефон, зажать Volume Up + Volume Down и, удерживая их, воткнуть кабель, подключенный к компьютеру. Без кабеля до ПК комбинация не срабатывает, это частая причина паники "у меня сломан Download Mode". На старых моделях с физической кнопкой Home комбинация была Volume Down + Home + Power. Выход из режима, если передумали: удерживать Volume Down + Power около 7 секунд.
Главное предупреждение: прошивка любого неофициального образа через Odin пережигает eFuse Knox, на экране Download Mode появится KNOX WARRANTY VOID 0x1. Это необратимо, отвалятся Samsung Pass, Secure Folder и банковские приложения, проверяющие Knox-аттестацию. Сам по себе вход в Download Mode через adb reboot download ничего не пережигает, заходить и выходить безопасно.
adb reboot recovery на Samsung работает штатно, а вот кнопочная комбинация рекавери на моделях после 2020 года тоже требует подключенного к ПК кабеля: Volume Up + Power при воткнутом USB.
Частые ошибки:
Код: Выделить всё
adb reboot
error: device unauthorized.Код: Выделить всё
error: device offlineСкрипт завис на adb wait-for-device навсегда: вы ждете состояние device, а устройство ушло в bootloader или не поднялось вовсе. Оборачивайте ожидание в таймаут:
Код: Выделить всё
timeout 120 adb wait-for-device || { echo "device lost"; exit 1; }Дальше по курсу: в главе 6 займемся навигацией по файловой системе Android, а паттерн ожидания загрузки из этой главы станет основой скриптов автоматизации в главах 22 и 24.