Ошибка Unable to request SHSH: почему возникает и как исправить

Ошибка Unable to request SHSH появляется в futurerestore на этапе, когда утилита обращается к серверам Apple за подписью (TSS-ответом) для выбранной прошивки — и получает отказ. Чаще всего это означает одно из двух: либо запрошенная версия iOS уже не подписывается Apple, либо в запросе передан неверный набор параметров (APNonce, генератор, BuildManifest), и сервер отклоняет его как некорректный.

Проблема критична именно в контексте понижения или восстановления на неподписываемую версию iOS с помощью сохранённых SHSH blobs: без валидного ответа TSS-сервера процесс останавливается до начала прошивки. Хорошая новость в том, что ошибка почти всегда диагностируется по логу futurerestore и устраняется корректировкой параметров запуска, а не аппаратным вмешательством.

Что означает ошибка и когда она возникает

SHSH (Signed Hash) — это цифровая подпись, которую сервер Apple выдаёт на конкретную связку «устройство + версия iOS + уникальный идентификатор ECID». Без неё iTunes или Finder откажутся устанавливать прошивку. Утилита futurerestore имитирует этот запрос, подставляя сохранённые blobs и заданный APNonce.

Сообщение Unable to request SHSH (иногда в паре со строками TSS request failed или упоминанием Tatsu на новых версиях iOS) сигнализирует, что сервер вернул ошибку или пустой ответ. Запрос формируется локально, поэтому причина кроется либо в данных, которые вы передали утилите, либо в статусе подписи самой прошивки.

Отдельный сценарий — сбой сети: если компьютер не может достучаться до серверов Apple (gs.apple.com перенаправлен, заблокирован или недоступен), запрос просто не доходит. Это тоже проявляется той же ошибкой, поэтому сетевую составляющую проверяют в первую очередь.

Основные причины отказа сервера

  • 🔒 Версия iOS больше не подписывается — Apple прекратила выдачу подписи для целевой прошивки, и без валидных blobs с совпадающим генератором восстановление невозможно.
  • 🔑 Несовпадение APNonce и генератора — на устройстве не установлен тот generator, под который сохранён blob, либо nonce не зафиксирован.
  • 📄 Неподходящий BuildManifest или SEP — при даунгрейде с чужой прошивкой файлы SEP/Baseband несовместимы с целевой версией.
  • 🌐 Сетевые проблемы — перенаправление gs.apple.com в hosts-файле, блокировка файрволом или недоступность серверов Apple.
  • 🧩 Устаревшая версия futurerestore — старые сборки не умеют работать с новой системой подписи Tatsu.
⚠️ Внимание: если целевая версия iOS уже не подписывается Apple, а сохранённых SHSH blobs для неё у вас нет, восстановиться на неё штатными средствами невозможно. Никакие настройки futurerestore это не обойдут — подпись выдаёт только сервер Apple.

Шаг 1. Проверка сети и файла hosts

Начните с самого простого: убедитесь, что компьютер имеет доступ к серверам Apple. Ранее для даунгрейда было принято перенаправлять gs.apple.com на сторонние серверы через файл hosts — если такая строка осталась, запросы уходят не туда, и сервер отвечает отказом.

Откройте файл hosts (C:\Windows\System32\drivers\etc\hosts в Windows или /etc/hosts в macOS/Linux) и проверьте, нет ли в нём строк с упоминанием gs.apple.com. Если есть — закомментируйте или удалите их, сохраните файл и повторите попытку. Заодно временно отключите VPN и проверьте, не блокирует ли файрвол исходящие соединения futurerestore.

Шаг 2. Проверка статуса подписи и blobs

Далее необходимо убедиться, что целевая прошивка вообще подписывается. Актуальный статус подписи для каждого устройства и версии iOS публикуется на профильных сервисах мониторинга (например, на известных сайтах-агрегаторах статуса ipsw). Если версия не подписывается, дальнейшие шаги имеют смысл только при наличии валидных SHSH blobs и совместимого SEP.

Проверьте сам blob-файл. Он должен быть сохранён именно для вашего ECID, вашей модели устройства и целевой версии iOS. Blob от другого устройства или другой прошивки бесполезен — сервер отклонит запрос. Проверить содержимое blob можно профильными утилитами для валидации SHSH: они покажут, какой генератор записан внутри и для какой версии он выписан.

☑️ Проверка перед запуском futurerestore

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

Шаг 3. Проверка APNonce и генератора

Это самая частая техническая причина ошибки на устройствах с джейлбрейком. Механизм работает так: blob привязан к конкретному генератору (строка вида 0x1111111111111111), и на устройстве перед восстановлением нужно зафиксировать именно этот генератор, чтобы устройство сгенерировало совпадающий APNonce.

Если nonce не зафиксирован или зафиксирован другой генератор, устройство при загрузке в режиме восстановления выдаёт случайный APNonce, который не совпадает с blob — и futurerestore либо падает с ошибкой запроса SHSH, либо зависает на ожидании устройства. Установка генератора выполняется средствами джейлбрейка (через соответствующую настройку в утилите джейлбрейка или командами nvram), и точный способ зависит от используемого инструмента — сверяйтесь с его документацией.

📊 На каком этапе у вас возникла ошибка Unable to request SHSH?
Сразу при запуске futurerestore
При обращении к серверу Apple
После ввода устройства в DFU
При проверке blob-файла

Шаг 4. Совместимость SEP, Baseband и BuildManifest

При восстановлении на неподписываемую версию futurerestore берёт компоненты SEP и Baseband из подписываемой в данный момент прошивки — именно поэтому в команде указываются два файла: целевой ipsw и файл манифеста от актуальной версии. Если SEP из актуальной прошивки несовместим с целевой версией iOS, запрос подписи или сама прошивка завершатся ошибкой.

Совместимость SEP между версиями — не гарантированная величина: она зависит от конкретной модели устройства и пары прошивок. Перед попыткой проверьте в профильных источниках, подтверждена ли совместимость для вашей связки. Пример структуры команды выглядит так:

futurerestore -t blob.shsh2 --latest-sep --latest-baseband -i target.ipsw

Флаг --latest-sep подставляет SEP из текущей подписываемой прошивки. Если с ним возникает ошибка, пробуют вариант с указанием конкретных файлов манифеста и SEP вручную — но только при подтверждённой совместимости компонентов.

Что такое Tatsu и почему старые версии futurerestore не работают

Начиная с определённых версий iOS, Apple перевела систему подписи на новый механизм Tatsu (TSS Server v2). Старые сборки futurerestore формируют запросы в устаревшем формате и получают отказ. Если вы используете архивную версию утилиты, обновитесь до актуальной сборки из официального репозитория проекта.

Шаг 5. Обновление futurerestore и анализ лога

Утилита активно дорабатывается, и сборки годовалой давности могут не поддерживать актуальный формат ответов сервера. Скачайте последнюю версию futurerestore из официального репозитория проекта и повторите попытку — заметная доля ошибок Unable to request SHSH на новых прошивках решается именно обновлением.

Если ошибка сохраняется, внимательно прочитайте лог: строки непосредственно перед сообщением об ошибке обычно содержат код ответа сервера или указание на конкретный параметр, который отклонён. По ним можно точно определить, в чём причина — в подписи, nonce или манифесте.

Симптом в логеВероятная причинаЧто проверить
Ошибка сразу после старта, без обращения к устройствуСеть или hostsФайл hosts, VPN, файрвол
TSS request failed с кодом отказаВерсия не подписываетсяСтатус подписи, наличие blobs
Ошибка после отправки запроса с blobНеверный blob или ECIDВалидация blob, соответствие устройству
Зависание на ожидании устройства в recoveryAPNonce не совпадаетУстановленный генератор
Ошибка на этапе SEP/BuildManifestНесовместимость компонентовСовместимость SEP для пары прошивок
⚠️ Внимание: любые манипуляции с futurerestore приводят к полному стиранию данных устройства (если не используется режим обновления, который тоже не гарантирует сохранность). Перед началом сделайте резервную копию через Finder, iTunes или iCloud.

Когда восстановление невозможно

Честный ответ, который стоит принять до начала экспериментов: если целевая версия iOS не подписывается, blobs для неё не сохранены, либо SEP актуальной прошивки несовместим с целевой — понизить версию на данном устройстве невозможно, и ошибка Unable to request SHSH является отражением этого ограничения, а не сбоя. Это архитектурное ограничение системы подписи Apple, а не неисправность утилиты.

В такой ситуации остаются два пути: восстановиться на актуальную подписываемую версию iOS штатными средствами (Finder/iTunes) либо ждать появления новых инструментов, если для вашей модели и версии чипа теоретически возможны обходы. Конкретика здесь сильно зависит от поколения устройства.

⚠️ Внимание: не скачивайте futurerestore и blob-файлы со случайных сайтов. Используйте только официальный репозиторий проекта — модифицированные сборки могут содержать вредоносный код, а чужие blobs заведомо не подойдут вашему устройству.

Часто задаваемые вопросы

Можно ли исправить ошибку, если версия iOS уже не подписывается?

Только при наличии заранее сохранённых SHSH blobs для этой версии, совпадающего генератора на устройстве и совместимого SEP. Без blobs восстановление на неподписываемую версию невозможно в принципе.

Где взять SHSH blobs, если я их не сохранял?

Никак. Blobs выдаёт сервер Apple только в период подписи версии, и получить их задним числом нельзя. Проверить, не сохранялись ли они автоматически сторонними сервисами, можно по ECID устройства на профильных ресурсах — но только если вы когда-либо пользовались такими сервисами.

Помогает ли смена USB-порта или кабеля при этой ошибке?

Нет. Unable to request SHSH возникает на этапе сетевого запроса к серверу Apple, а не при обмене данными с устройством. Кабель и порт влияют на более поздние этапы прошивки.

Ошибка возникает и на подписываемой версии — в чём дело?

Проверьте файл hosts, VPN и файрвол: вероятнее всего, запрос не доходит до серверов Apple или перенаправляется. Также убедитесь, что используется актуальная сборка futurerestore, поддерживающая текущий формат TSS-запросов.

Безопасно ли использовать futurerestore для устройства?

Сама утилита не повреждает аппаратную часть: при неудаче устройство обычно можно восстановить штатно через режим DFU и Finder/iTunes. Основные риски — потеря данных и потеря джейлбрейка, поэтому резервная копия обязательна.