Skip to content

Выход из циклической загрузки

При прошивке устройства могут возникать ситуации, когда устройство становится "окирпиченным". Теоретически, если использовать fastboot только для прошивки загрузочного раздела или установить неподходящие модули, из-за которых устройство не загружается, то это можно восстановить соответствующими операциями. В данном документе описаны некоторые экстренные методы восстановления работоспособности "окирпиченного" устройства.

Кирпич путем перепрошивки загрузочного раздела

В KernelSU при прошивке загрузочного раздела могут возникнуть следующие ситуации:

  1. Загрузочный образ прошивается в неправильном формате. Например, если формат загрузки телефона - gz, а вы прошили образ в формате lz4, то телефон не сможет загрузиться.
  2. Для корректной загрузки телефона необходимо отключить проверку AVB (обычно для этого требуется стереть все данные на телефоне).
  3. Ядро содержит ошибки или не подходит для прошивки телефона.

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

Окирпичивание из-за модулей

Установка модулей может быть более распространенной причиной окирпичивания устройства, но мы должны серьезно предупредить вас: Не устанавливайте модули из неизвестных источников! Поскольку модули обладают правами root, они могут нанести непоправимый ущерб вашему устройству!

Нормальные модули

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

Спасение, с зажатой клавишей уменьшения громкости

Вы можете попытаться использовать Безопасный режим для спасения вашего устройства. После входа в безопасный режим все модули будут отключены.

Войти в безопасный режим можно двумя способами:

  1. Встроенный безопасный режим некоторых систем; некоторые системы имеют встроенный безопасный режим, доступ к которому осуществляется долгим нажатием кнопки уменьшения громкости, в то время как другие (например, MIUI/HyperOS) могут включить безопасный режим в Recovery. При входе в безопасный режим системы KernelSU также переходит в безопасный режим и автоматически отключает модули.
  2. Встроенный безопасный режим KernelSU; метод работы заключается в том, что после первого экрана загрузки необходимо непрерывно нажать клавишу уменьшения громкости более трех раз. Обратите внимание, что именно нажать-отпустить, нажать-отпустить, нажать-отпустить, а не нажать и удерживать.

После входа в безопасный режим все модули на странице модулей менеджера KernelSU Manager отключаются, но можно выполнить операцию "деинсталляция" для удаления модулей, которые могут вызывать проблемы.

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

WARNING

KernelSU регистрирует слушатель клавиши громкости во время инициализации модуля ядра (загружается, когда ядро выполняет процесс init в режиме LKM), и отменяет регистрацию на этапе on_post_fs_data (перед загрузочной анимацией). Вам необходимо уловить момент и быстро нажать клавишу уменьшения громкости три раза после первого экрана загрузки. Если устройство загружается быстро или операция не была выполнена своевременно, безопасный режим может не сработать.

Если модуль записывает неразумный код в initrc, из-за которого устройство не может загрузиться, этот код все равно будет выполняться даже в безопасном режиме.

Ручное восстановление

Если безопасный режим не решает проблему, вы можете попробовать ручное восстановление. Выберите следующие методы в зависимости от состояния устройства.

Метод 1: Использование ksud для управления модулями через ADB

Если устройство может получить root shell через ADB, вы можете использовать командную строку ksud напрямую для отключения или удаления проблемного модуля:

TIP

После монтирования разделов metadata и data вы можете запустить команду /data/adb/ksud в режиме Recovery для управления модулями.

Поскольку устройства GKI используют общий init, модуль ядра KernelSU по-прежнему будет загружен в режиме Recovery, и вы сможете нормально использовать большинство функций ksud (например, установку функций).

adb shell
su
ksud module list          # Вывести список всех модулей
ksud module disable <id>  # Отключить проблемный модуль
ksud module uninstall <id> # Или удалить напрямую
reboot

Метод 2: Ручная очистка через Recovery

Если вы не можете войти в систему (даже ADB не подключается), вам понадобится стороннее Recovery (например, TWRP) на устройстве.

Загрузка модулей KernelSU зависит от файла инъекции init.rc на стороне ядра и процесса ksud в пространстве пользователя. После удаления этих файлов и перезагрузки KernelSU не будет загружать никаких модулей.

Шаги операции:

  1. Войдите в Recovery (например, TWRP).
  2. Смонтируйте раздел data:
    mount /data
    (Возможно, вам сначала потребуется расшифровать раздел data. Конкретная операция зависит от устройства и метода расшифровки.)
  3. Удалите ksud, чтобы предотвратить загрузку модулей:
    rm -f /data/adb/ksud
  4. (Необязательно) Смонтируйте раздел metadata и удалите файл инъекции init.rc, сгенерированный модулем:
    mount /metadata
    rm -f /metadata/ksu/modules.rc
    rm -f /metadata/watchdog/ksu/modules.rc
  5. Перезагрузите устройство:
    reboot

KernelSU пропустит загрузку всех модулей после перезагрузки. После входа в систему вы можете снова открыть менеджер KernelSU для решения проблем с модулями.

Форматирование данных или другие вредоносные модули

Если описанные выше способы не помогли спасти устройство, то высока вероятность того, что установленный модуль имеет вредоносные операции или повредил устройство иным способом. В этом случае есть только два варианта:

  1. Стереть данные и прошить официальную систему полностью.
  2. Обратиться в сервисную службу.

Выпускается под лицензией GPL3.