QFIL: ошибки Download Fail, Firehose Fail и FHLoader Fail — причины и решения

Ошибка Download Fail с припиской Firehose Fail или FHLoader Fail в логе QFIL означает, что утилита не смогла передать программатор (firehose-программатор) в устройство на чипе Qualcomm — прошивка обрывается на самом первом этапе, ещё до записи разделов. Типичная строка в окне лога выглядит как ERROR: function: sahara_rx_data:237 или сообщение о невозможности загрузить prog_emmc_firehose_*.elf. Это одна из самых частых проблем при прошивке через Qualcomm Flash Image Loader, и в подавляющем большинстве случаев она связана не с «смертью» телефона, а с несоответствием файлов, драйверов или режима подключения.

Разобраться в причине можно самостоятельно, если действовать последовательно: от проверки кабеля и порта до сверки программатора с конкретной моделью устройства. Ниже разобраны основные источники сбоя и безопасный порядок диагностики, который не требует разборки аппарата и не усугубит ситуацию.

Что означают ошибки Firehose Fail и FHLoader Fail

QFIL прошивает устройства Qualcomm через аварийный режим EDL (Emergency Download Mode), в котором процессор общается с ПК по протоколу Sahara, а затем по протоколу Firehose. Сначала утилита отправляет в устройство специальный загрузчик-программатор (файл вида prog_emmc_firehose_xxxx.elf или .mbn), и только потом начинается запись разделов. Сообщение Firehose Fail или FHLoader Fail сигнализирует, что сбой произошёл именно на стадии загрузки или запуска этого программатора.

Формулировки в логе могут отличаться в зависимости от версии QPST/QFIL: Download Fail:FireHose Fail FireHose Fail, FHLoader Fail:Process fail, ошибки Sahara с таймаутом. Все они указывают на один и тот же участок цепочки «ПК — кабель — порт — программатор — чип», поэтому и диагностика строится вокруг этих звеньев.

Основные причины сбоя

Чаще всего виновником оказывается одна из следующих причин, и их удобно проверять по порядку от простого к сложному:

  • 🔌 Кабель и порт USB — повреждённый кабель «только для зарядки», фронтальный порт корпуса или хаб без питания обрывают передачу данных;
  • 💾 Неподходящий firehose-программатор — файл prog_emmc_firehose от другой модели или другой ревизии чипа отклоняется устройством;
  • 🔐 Авторизованный EDL — на многих современных аппаратах (особенно Xiaomi) требуется подписанный программатор или авторизованный аккаунт, обычный файл отклоняется;
  • 🖥️ Драйверы Qualcomm — устройство определяется не как Qualcomm HS-USB QDLoader 9008, а с ошибкой или как неизвестное устройство;
  • Устройство не в EDL-режиме — телефон загружен в fastboot или обычную систему вместо режима 9008;
  • 📁 Повреждённый или «криво» распакованный пакет прошивки — кириллица и пробелы в пути, битый архив, отсутствие файлов rawprogram и patch.

Отдельно стоит ситуация, когда устройство вообще не определяется системой — это уже вопрос аппаратного состояния или способа входа в EDL, а не настроек QFIL.

Проверка драйвера и режима подключения

Первое действие — открыть Диспетчер устройств Windows и посмотреть, как определяется подключённый аппарат. Корректное состояние для прошивки через QFIL — устройство в разделе портов (COM и LPT) с именем Qualcomm HS-USB QDLoader 9008. Если вместо этого виден Android-интерфейс, ADB-устройство, QHSUSB_BULK с восклицательным знаком или неизвестное USB-устройство — проблема именно здесь.

Для исправления установите драйверы Qualcomm (обычно поставляются вместе с QPST либо отдельным пакетом), а при наличии устройства с ошибкой обновите драйвер вручную, указав папку с драйвером. Цифровая подпись драйверов должна быть принята системой — на 64-битной Windows неподписанный драйвер 9008 может не заработать без отключения проверки подписи. После переустановки драйвера переподключите устройство и убедитесь, что в QFIL сверху отображается порт Qualcomm HS-USB QDLoader 9008 (COMxx).

⚠️ Внимание: отключение проверки подписи драйверов и установка драйверов из непроверенных источников — потенциальный риск для системы. Используйте драйверы из состава официального QPST или с ресурса производителя чипа.
📊 На каком этапе у вас возникает ошибка QFIL?
Устройство не определяется как 9008
Сбой сразу после нажатия Download
Загрузка начинается и обрывается
Ошибка появляется в конце прошивки

Проверка кабеля, порта и входа в EDL

Обрыв связи на этапе Sahara/Firehose нередко вызван банальной физикой. Используйте короткий целый кабель с data-линиями, подключайтесь напрямую к порту USB на материнской плате (сзади корпуса ПК), избегайте хабов и переходников. На ноутбуке попробуйте другой порт — желательно USB 2.0, так как с некоторыми контроллерами USB 3.x старые версии QFIL работают нестабильно.

Далее нужно убедиться, что устройство действительно находится в EDL. Способ входа зависит от модели: где-то работает команда adb reboot edl, где-то — комбинация кнопок при подключении кабеля, а на аппаратах без реакции на кнопки применяются тест-поинты на плате, что уже требует разборки. Универсальной комбинации не существует — сверяйтесь с инструкцией именно для вашей модели. Признак успешного входа в EDL — чёрный экран и появление порта 9008 в диспетчере устройств.

Правильный выбор файлов прошивки

Вторая по частоте причина — несоответствие файлов устройству. В QFIL в поле Programmer Path указывается файл prog_emmc_firehose_*.elf (или .mbn) из пакета прошивки, а в Load XML — файлы rawprogram0.xml и patch0.xml. Программатор должен быть именно от вашей модели и типа памяти: версии для eMMC и UFS несовместимы, как и программаторы от разных SoC.

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

  • 📦 Скачайте прошивку заново из надёжного источника и сравните контрольную сумму, если она опубликована;
  • 📂 Распакуйте архив в папку с коротким путём без кириллицы и пробелов, например C:\fw\;
  • 🔍 Убедитесь, что в папке присутствуют и программатор, и xml-файлы разметки;
  • 🧩 В настройках QFIL выберите Configuration → FireHose Configuration и проверьте, что тип памяти (emmc/ufs) соответствует устройству;
  • 🚫 Не подставляйте программатор от «похожей» модели — это почти гарантированный FHLoader Fail.

☑️ Чек-лист перед нажатием Download

Выполнено: 0 / 5

Если устройство относится к моделям с защищённым EDL (характерно для многих Xiaomi и ряда аппаратов других брендов), обычный программатор будет отвергнут независимо от его правильности — потребуется авторизованный файл или сервисная процедура производителя. Это ограничение прошивальщика обойти нельзя.

⚠️ Внимание: прошивка пакета от другой модели или региона может привести к нерабочему состоянию устройства («кирпичу»), восстановление которого потребует сервисного оборудования. Сверяйте точное кодовое имя аппарата, а не только маркетинговое название.

Разбор типичных сообщений в логе QFIL

Лог в нижней части окна QFIL — главный диагностический инструмент. Разные формулировки указывают на разные звенья цепочки:

Сообщение в логеВероятная причинаЧто проверить
Sahara Fail / таймаут SaharaНет связи с устройством на стартеДрайвер 9008, кабель, порт USB
Firehose Fail при загрузке программатораНеподходящий или отклонённый firehose-файлСовместимость программатора, авторизация EDL
FHLoader Fail: Process failОбрыв после запуска программатораСтабильность USB, целостность пакета прошивки
Ошибка на этапе записи разделовПроблема с памятью или xml-разметкойФайлы rawprogram/patch, состояние eMMC/UFS

Обратите внимание: если сбой происходит стабильно на одном и том же проценте записи разделов, а не на этапе программатора, это уже не Firehose-проблема — подозрение смещается на повреждение памяти устройства или неверную разметку в xml-файлах.

Почему ошибка может появляться «на ровном месте»

Даже если вчера прошивка проходила успешно, сегодня сбой возможен из-за обновления Windows, заменившего драйвер порта, окисления контактов разъёма устройства, деградации кабеля или переключения QFIL на другой COM-порт. Перед повторной прошивкой заново пройдите чек-лист подключения.

Когда самостоятельные меры не помогают

Если драйвер корректен, кабель проверен, пакет прошивки точно от вашей модели, а QFIL по-прежнему возвращает Download Fail, остаются два сценария. Первый — защищённый загрузчик с обязательной авторизацией: здесь поможет только сервисная процедура производителя или авторизованный программатор. Второй — аппаратная неисправность: повреждение разъёма, линий USB на плате или микросхемы памяти. В обоих случаях дальнейшие эксперименты наугад бессмысленны и могут навредить.

Разумный шаг — обратиться в сервисный центр с диагностическим оборудованием, где устройство прошивают через специализированные боксы и могут проверить состояние памяти. Перед визитом сохраните скриншот лога QFIL — он ускорит диагностику.

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

Чем отличаются Firehose Fail и FHLoader Fail?

Обе ошибки относятся к одному этапу — загрузке и запуску firehose-программатора. Разница лишь в формулировке конкретной версии QFIL: FHLoader — это модуль, работающий с firehose-протоколом, и его сбой обозначает ту же группу причин.

Устройство определяется как QHSUSB_BULK с ошибкой — что делать?

Это признак отсутствующего или неработающего драйвера. Обновите драйвер вручную через Диспетчер устройств, указав папку с драйверами Qualcomm, и убедитесь, что система приняла цифровую подпись драйвера.

Можно ли использовать программатор от другой модели на том же чипе?

Рискованно: даже при одинаковом SoC программатор может отличаться по типу памяти, ревизии платы и цифровой подписи. Используйте файл именно из прошивки вашей модели.

QFIL не видит порт 9008, хотя в диспетчере устройств он есть. Почему?

Проверьте, что в QFIL выбран режим работы с портом (устройство должно быть подключено до запуска прошивки), перезапустите QFIL от имени администратора и переподключите кабель. Иногда помогает смена USB-порта.

Ошибка возникает на телефоне Xiaomi — это авторизация?

Возможно. На многих моделях Xiaomi EDL-прошивка требует авторизованного аккаунта или подписанного программатора. Если все остальные причины исключены, вероятнее всего дело именно в этом ограничении.