Код: Выделить всё
$ fastboot --version
fastboot version 36.0.0-13206524
Installed as /opt/platform-tools/fastboot
У устройства на Android 14/15 четыре состояния, между которыми придется перемещаться. Из загруженной системы:
Код: Выделить всё
adb reboot # обычная перезагрузка в систему
adb reboot recovery # режим восстановления
adb reboot bootloader # загрузчик, он же режим fastboot
adb reboot fastboot # fastbootd, userspace fastboot (Android 10+)
adb reboot sideload # recovery сразу в режиме приема пакета (работает не на всех прошивках)
Код: Выделить всё
fastboot reboot # в систему
fastboot reboot bootloader # перезапуск самого загрузчика
fastboot reboot recovery # в recovery (на современных загрузчиках)
fastboot reboot fastboot # в fastbootd
Код: Выделить всё
$ adb devices
List of devices attached
29051FDH3000WV recovery
$ fastboot devices
29051FDH3000WV fastboot
ADB в recovery:
Стоковый recovery после загрузки часто показывает лежащего робота с надписью "No command". Меню вызывается так: зажмите кнопку питания и коротко нажмите громкость вверх. Внутри стокового recovery работает урезанный adbd: adb devices устройство покажет, но adb shell и pull/push обычно недоступны. Его единственная практическая задача, прием обновления через sideload. Кастомные recovery (TWRP, OrangeFox) поднимают полноценный adbd с шеллом и root, к ним вернемся в разделе про спасение данных.
Sideload, установка обновления:
Типовой сценарий: после неудачного OTA телефон уходит в бутлуп, система не грузится, recovery живой. Скачиваете полный OTA-образ строго для своей модели (для Pixel они выложены на официальной странице образов для разработчиков, у других вендоров на сайтах поддержки), дальше:
В меню recovery кнопками громкости выбираете пункт "Apply update from ADB" и подтверждаете питанием. Устройство переключается в режим sideload:
Код: Выделить всё
$ adb devices
List of devices attached
29051FDH3000WV sideload
Код: Выделить всё
$ adb sideload shiba-ota-bp1a.250505.005.zip
serving: 'shiba-ota-bp1a.250505.005.zip' (~47%)
Total xfer: 1.00x
Частые проблемы sideload. Первая:
Код: Выделить всё
adb: sideload connection failed: no devices/emulators found
Код: Выделить всё
E: footer is wrong
E: Signature verification failed
Installation aborted.
Fastboot и fastbootd:
Это два разных режима с одним клиентом. Классический fastboot живет в загрузчике и шьет физические разделы: boot, init_boot, vendor_boot, dtbo, radio, bootloader. fastbootd запускается из recovery-окружения и умеет динамические разделы внутри super: system, vendor, product, system_ext. Попытка прошить system из обычного загрузчика на устройстве с динамическими разделами заканчивается так:
Код: Выделить всё
$ fastboot flash system system.img
FAILED (remote: 'Partition system_a not found')
Полезная диагностика перед любой прошивкой:
Код: Выделить всё
$ fastboot getvar all 2>&1 | grep -E "current-slot|slot-count|unlocked|secure"
(bootloader) current-slot:a
(bootloader) slot-count:2
(bootloader) unlocked:yes
(bootloader) secure:yes
Код: Выделить всё
$ fastboot getvar current-slot
current-slot: a
$ fastboot set_active b
Setting current slot to 'b' OKAY [ 0.011s]
Разблокировка загрузчика:
Без нее fastboot откажется шить что-либо. Последовательность:
1. В настройках семь раз тапнуть по номеру сборки, затем в параметрах разработчика включить переключатель "Заводская разблокировка" (OEM unlocking).
2. Перейти в загрузчик: adb reboot bootloader.
3. Дать команду разблокировки:
Код: Выделить всё
$ fastboot flashing unlock
OKAY [ 14.880s]
Finished. Total time: 14.881s
Типовая ошибка:
Код: Выделить всё
FAILED (remote: 'flashing unlock is not allowed')
Перепрошивка разделов, правильная последовательность:
Эталон, заводской образ Pixel. Внутри архива лежит скрипт flash-all.sh, и его порядок стоит запомнить:
Код: Выделить всё
fastboot flash bootloader bootloader-shiba-*.img
fastboot reboot bootloader
fastboot flash radio radio-shiba-*.img
fastboot reboot bootloader
fastboot -w update image-shiba-bp1a.250505.005.zip
Ручная прошивка отдельных разделов:
Код: Выделить всё
fastboot flash boot magisk_patched-28.1.img # ядро и ramdisk
fastboot flash init_boot magisk_patched-28.1.img # на Pixel 7+ и многих устройствах 2023+ Magisk шьется сюда
fastboot flash dtbo dtbo.img
fastboot --slot all flash bootloader bootloader-shiba-*.img # сразу в оба слота
Самый безопасный прием, загрузка образа без прошивки:
Код: Выделить всё
fastboot boot twrp-3.7.1_12-miatoll.img
Извлечение данных в экстренных ситуациях:
Сценарий первый: экран разбит, система работает, отладка была включена и ваш компьютер авторизован. Тогда все штатно:
Код: Выделить всё
adb pull /sdcard/DCIM ./rescue/DCIM
adb exec-out tar -cf - -C /sdcard Documents Download Pictures > rescue.tar
Сценарий второй: отладка выключена или компьютер не авторизован. Диалог подтверждения RSA-ключа требует работающего экрана, по USB вы ничего не сделаете. Рабочий обход: мышь через OTG-переходник плюс внешний монитор, если устройство умеет DisplayPort через USB-C (Pixel 8 и новее, многие флагманы). Разблокируете, включаете отладку, дальше первый сценарий.
Сценарий третий: система не грузится. Если загрузчик разблокирован, грузите кастомный recovery через fastboot boot и забираете файлы его полноценным adb:
Код: Выделить всё
adb pull /sdcard/ ./rescue/
И честное правило, которое сэкономит время и деньги: заблокированный загрузчик плюс выключенная отладка плюс неизвестный PIN означает, что данные не достанет никто, включая сервисы с программаторами. EDL-режим на чипах Qualcomm (устройство определяется как порт 9008) позволяет вычитать flash-память напрямую, но дамп остается зашифрованным. Лучшая стратегия спасения данных делается заранее: бэкапы и синхронизация, пока телефон жив. Учтите также, что adb backup на Android 12+ почти бесполезен, приложения по умолчанию исключают свои данные из него (разбирали в главе 18).
Если fastboot молчит:
Код: Выделить всё
$ fastboot devices
$ # пусто, хотя телефон в bootloader, или висит < waiting for any device >