Если вы когда-нибудь сталкивались с джейлбрейком, даунгрейдом прошивки или восстановлением iPhone/iPad через FutureRestore, то наверняка слышали про загадочный APNonce. Этот параметр — своего рода «отпечаток» текущего состояния загрузчика устройства, который критически важен для работы с подписанными (или неподписанными) прошивками. Без правильного APNonce даже самая актуальная инструкция по даунгрейду может не сработать, а устройство рискует оказаться в режиме Recovery Mode без возможности выхода.
В этой статье мы разберёмся, что такое APNonce на практике (без лишней теории), где его найти в iOS и macOS, а также как использовать эту информацию для безопасного восстановления или джейлбрейка. Особое внимание уделим актуальным методам для iOS 15–17, поскольку старые способы (вроде чтения через ideviceinfo) часто перестают работать после обновлений Apple.
Что такое APNonce и почему он важен
APNonce (или ApNonce, ApNonce) — это уникальный 64-битный идентификатор, который генерируется загрузчиком Apple (iBoot) при каждом включении устройства. Он используется для:
- 🔐 Подписи прошивок: Apple привязывает подпись (SHSH blob) к конкретному APNonce. Без совпадения этого значения восстановление через
FutureRestoreилиOdysseusневозможно. - 🔄 Даунгрейда iOS: При понижении версии прошивки нужно «поймать» APNonce, для которого у вас есть сохранённые blob’ы.
- 🛠️ Восстановления после сбоев: Если устройство застряло в
DFU Mode, знание текущего APNonce поможет подобрать правильные blob’ы для выхода.
Важно понимать, что APNonce меняется при каждом полном выключении устройства (не перезагрузке!). Например, если вы выключили iPhone, а затем включили его снова, значение сбросится. Это усложняет работу с blob’ами, поскольку нужно успеть сохранить их для актуального APNonce.
⚠️ Внимание: На устройствах с чипом A12 и новее (iPhone XS, iPad Pro 2018+) APNonce генерируется аппаратным модулем SEP (Secure Enclave Processor). Это означает, что его нельзя изменить программно — только «поймать» текущее значение.
Как узнать APNonce на iPhone или iPad
Есть несколько способов получить текущий APNonce, но не все они работают на последних версиях iOS. Мы рассмотрим актуальные методы для iOS 15–17, включая обход ограничений Apple.
Метод 1: Через утилиту irecovery (для устройств в DFU Mode)
Если ваш iPhone или iPad находится в режиме DFU, можно прочитать APNonce напрямую через командную строку:
- Подключите устройство к Mac или Linux (на Windows потребуется WSL).
- Установите
libimobiledeviceиirecovery:brew install libimobiledevicebrew install irecovery
- Переведите устройство в
DFU Mode(инструкция ниже). - Выполните команду:
irecovery -q | grep "NONC"В выводе найдите строку вида
NONC: 0x123456789abcdef0— это и есть ваш APNonce.
Если команда возвращает ошибку ERROR: Unable to connect to device, проверьте:
- 🔌 Правильность подключения кабеля (используйте оригинальный Lightning/USB-C).
- 🖥️ Наличие драйверов
libimobiledevice(на Windows может потребоваться iTunes). - 🔄 Повторный ввод в
DFU(иногда устройство «выпадает» из режима).
Как войти в DFU Mode на iPhone с Face ID
1. Подключите устройство к компьютеру.
2. Быстро нажмите и отпустите кнопку Увеличения громкости.
3. Быстро нажмите и отпустите кнопку Уменьшения громкости.
4. Зажмите кнопку Питания на 10 секунд, пока экран не погаснет.
5. Не отпуская кнопку Питания, зажмите кнопку Уменьшения громкости на 5 секунд, затем отпустите кнопку Питания, продолжая держать Уменьшение громкости ещё 10 секунд.
6. Экран должен остаться чёрным — это признак успешного входа в DFU.
Метод 2: Через джейлбрейк-твики (для работающей системы)
Если устройство включено и на нём установлен джейлбрейк, можно использовать твики:
- 📱 System Info (из репозитория
https://repo.packix.com/) — показывает APNonce в разделеDevice Information. - 🔧 NewTerm 2 + команда:
nvram -p | grep "com.apple.System.boot-nonce"(работает не на всех версиях iOS).
⚠️ Внимание: На iOS 16+ многие твики для чтения APNonce перестали работать из-за ужесточения безопасности Apple. Если командаnvramвозвращает пустой результат, попробуйте метод сirecovery.
Метод 3: Через логи macOS (для устройств в Recovery Mode)
Если iPhone в режиме Recovery Mode, а irecovery не работает, можно попробовать извлечь APNonce из логов macOS:
- Подключите устройство к Mac.
- Откройте
Консоль.app(из папкиУтилиты). - В поиске введите
MobileDeviceи найдите строки сApNonceилиNONCE.
Этот метод менее надёжен, но иногда помогает, если другие способы недоступны.
☑️ Подготовка к чтению APNonce
Таблица: Совместимость методов с версиями iOS
| Метод | iOS 14 и ниже | iOS 15 | iOS 16 | iOS 17 | Примечания |
|---|---|---|---|---|---|
irecovery (DFU) |
✅ Да | ✅ Да | ✅ Да | ✅ Да | Самый надёжный способ |
nvram (джейлбрейк) |
✅ Да | ⚠️ Частично | ❌ Нет | ❌ Нет | Блокируется Apple на новых версиях |
| Твик System Info | ✅ Да | ✅ Да | ⚠️ Зависит от твика | ❌ Нет | Требует актуальной версии твика |
| Логи macOS | ✅ Да | ✅ Да | ✅ Да | ✅ Да | Менее надёжно, но иногда срабатывает |
Как использовать APNonce для даунгрейда или восстановления
Знание APNonce бесполезно без сохранённых SHSH blob’ов. Вот пошаговый алгоритм, как применить этот параметр на практике:
- Сохраните blob’ы для текущего APNonce:
- 🖥️ Используйте утилиту
tsschecker(для Mac/Linux) или онлайн-сервисы вроде TSS Saver. - 📝 Укажите в команде ваш APNonce и ECID устройства:
tsschecker -d [Ваш ECID] -e [Ваш APNonce] -i [Версия iOS] -s
- 🖥️ Используйте утилиту
- 🔍 Откройте сохранённый
.shsh2-файл текстовым редактором и найдите строку<string>ApNonce</string>— её значение должно совпадать с вашим текущим APNonce.
FutureRestore:
futurerestore -t [blob.shsh2] --latest-sep --latest-baseband [IPSW] --use-pwndfu
Ключ --use-pwndfu нужен для обхода проверки Apple на устройствах с чипом A9–A11.
⚠️ Внимание: На устройствах с чипом A12+ (например, iPhone XS, iPad Pro 2018+) даунгрейд без подписанных Apple прошивок практически невозможен из-за аппаратных ограничений SEP. Даже с правильным APNonce шанс успеха минимален.
Частые ошибки и как их избежать
Работа с APNonce часто сопровождается проблемами. Вот самые распространённые из них и способы их решения:
- 🔄 APNonce меняется при перезагрузке:
Это нормальное поведение. Чтобы «зафиксировать» значение, не выключайте устройство до завершения всех манипуляций с прошивкой. Если нужно перезагрузиться, используйте
ldid -Sдля патчинга ядра (только для опытных пользователей). - ❌
irecoveryне видит устройство:Проверьте:
- 🔌 Кабель (лучше оригинальный USB-A to Lightning или USB-C).
- 🖥️ Права на порт
/dev/usb*(на Linux может потребоватьсяsudo chmod). - 🔄 Повторный ввод в
DFU Mode(иногда устройство «вылетает» из режима).
- 🚫 Ошибка
ERROR: Unable to enter PWNDFUвFutureRestore:На устройствах A12+ этот метод не работает. Попробуйте:
- 🔧 Использовать
checkm8-эксплоит для A9–A11. - 📱 Проверить совместимость blob’ов с версией SEP.
- 🔧 Использовать
APNonce и безопасность: что нужно знать
APNonce — не просто технический параметр, но и потенциальная уязвимость. Вот почему:
- 🔓 Атаки через bootrom-эксплоиты:
Злоумышленники могут использовать уязвимости вроде
checkm8, чтобы сбросить APNonce и установить неподписанную прошивку. Это один из векторов атак на iPhone с джейлбрейком. - 🛡️ Защита от Apple:
Начиная с iOS 15, Apple ужесточила контроль над
nvram, чтобы заблокировать чтение APNonce безDFU. Это усложнило жизнь как хакерам, так и легитимным пользователям, желающим сделать даунгрейд.
Если вы планируете эксперименты с прошивками, следуйте правилам:
- 🔒 Не делитесь своими blob’ами или APNonce в открытых источниках.
- 📱 Используйте только проверенные утилиты (
tsschecker,FutureRestore) из официальных репозиториев. - 🔄 Перед даунгрейдом сделайте резервную копию через iTunes/Finder — восстановление данных после сбоя может быть невозможно.
FAQ: Ответы на частые вопросы
Можно ли изменить APNonce на iPhone с чипом A12+?
Нет, на устройствах с A12 и новее (iPhone XS, iPad Pro 2018+) APNonce генерируется аппаратным модулем SEP и не может быть изменён программно. Это делает даунгрейд на этих моделях крайне сложным или невозможным без подписи Apple.
Что делать, если APNonce в blob’ах не совпадает с текущим?
Вам нужно:
- Выключить и снова включить устройство, чтобы сгенерировать новый APNonce.
- Сохранить новые blob’ы для этого значения.
- Повторить попытку восстановления.
На A12+ этот метод не сработает — требуется официальная подпись прошивки.
Можно ли узнать APNonce без компьютера?
Теоретически да, но только если на устройстве установлен джейлбрейк и работает твик вроде System Info. Без джейлбрейка или в режиме DFU/Recovery компьютер обязателен.
Почему после обновления iOS APNonce стал недоступен для чтения?
Apple регулярно закрывает лазейки для чтения nvram и других низкоуровневых параметров. Начиная с iOS 16, многие методы (вроде команды nvram -p) перестали работать. Используйте irecovery в DFU Mode — это самый надёжный способ на сегодня.
Что такое generator в SHSH blob’ах и как он связан с APNonce?
Generator (или ApTicket) — это часть подписи прошивки, которая привязана к APNonce. При восстановлении через FutureRestore утилита проверяет, что generator в blob’е соответствует текущему APNonce устройства. Без этого совпадения восстановление завершится ошибкой.