Прошивка iPhone через Linux — задача, которая кажется невыполнимой на первый взгляд. Apple не предоставляет официальных инструментов для работы с iOS на этой платформе, а закрытость экосистемы создаёт дополнительные барьеры. Однако с помощью открытых утилит, таких как libimobiledevice, idevicebackup2 и futurerestore, можно успешно обновить, откатить или восстановить прошивку даже без macOS или Windows.
В этой статье мы разберём три основных сценария: обновление до последней версии iOS, даунгрейд на старую прошивку (если Apple ещё подписывает её) и восстановление через DFU-mode. Особое внимание уделим проблемам с подписью SHSH-блобов, которые часто становятся препятствием при работе с iPhone на Linux. Также вы найдёте таблицу совместимости инструментов и моделей, чек-лист подготовки и ответы на частые ошибки.
Почему прошивка iPhone на Linux сложнее, чем на macOS или Windows
Основная проблема кроется в отсутствии официальной поддержки. Apple разрабатывает инструменты iTunes и Finder (для macOS Catalina и новее) исключительно для своих ОС, а Windows-версии этих программ используют закрытые драйверы. На Linux приходится полагаться на:
- 🔧 Открытые библиотеки:
libimobiledevice(для взаимодействия с устройством),usbmuxd(для мультиплексирования USB-соединения). - 📦 Стороние утилиты:
idevicebackup2(бэкапы),futurerestore(восстановление прошивки),irecovery(работа сDFU). - 🔒 Ограничения Apple: подпись прошивок (SHSH-блобы), блокировка даунгрейда после выхода новых версий iOS.
Кроме того, Linux не всегда корректно определяет iPhone в DFU-mode — может потребоваться ручная настройка udev-правил. А без правильно настроенного usbmuxd даже простая команда ideviceinfo не будет работать.
Подготовка системы: установка необходимых пакетов
Прежде чем подключать iPhone, убедитесь, что на вашем Linux-дистрибутиве установлены все требуемые зависимости. Для Debian/Ubuntu-based систем выполните:
sudo apt update && sudo apt install -y \
libimobiledevice6 libimobiledevice-utils \
usbmuxd ifuse libplist-utils \
libirecovery-dev ideviceinstaller \
git autoconf automake libtool \
pkg-config libzip-dev libssl-dev
Для Arch Linux (и производных, например, Manjaro):
sudo pacman -S --needed \
libimobiledevice usbmuxd ifuse \
libplist libirecovery ideviceinstaller \
git base-devel
После установки пакетов обязательно перезагрузите службу usbmuxd:
sudo systemctl restart usbmuxd
Сценарий 1: Обновление iOS до последней версии
Для обновления iOS без потери данных можно использовать утилиту idevicebackup2 (для бэкапа) и futurerestore (для восстановления). Однако проще всего обновиться через OTA (по воздуху) — если устройство не заблокировано и есть доступ к Wi-Fi. Но если вам нужно принудительное обновление через Linux, следуйте инструкции:
- Скачайте прошивку для вашей модели с сайта ipsw.me. Например, для iPhone 13 Pro это будет файл вида
iPhone14,2_17.4_21E217_Restore.ipsw. - Подключите iPhone в обычном режиме и проверьте соединение:
ideviceinfo -s | grep "ProductVersion"
- Создайте бэкап (опционально, но рекомендуется):
idevicebackup2 backup --full ~/iphone_backup
- Переведите iPhone в режим восстановления (
Recovery Mode):
Для этого:
- 🔌 Отключите iPhone от USB.
- 🔄 Нажмите и удерживайте кнопку
Side(илиHomeдля старых моделей) +Volume Down(для iPhone 7/7 Plus — толькоVolume Down). - 🖥️ Подключите к USB, не отпуская кнопки, пока на экране не появится логотип iTunes.
- Восстановите прошивку с помощью
futurerestore:
futurerestore --latest-sep --latest-baseband путь/к/прошивке.ipsw
Скачать правильную прошивку (ipsw) для своей модели|
Установить все зависимости (libimobiledevice, usbmuxd)|
Проверить соединение командой ideviceinfo|
Создать бэкап (опционально, но рекомендуется)|
Перевести iPhone в Recovery Mode|
-->
Сценарий 2: Даунгрейд iOS на старую версию
Даунгрейд возможен только если Apple подписывает выбранную версию iOS. Проверить это можно на ipsw.me — рядом с версией будет зелёная галочка, если подпись активна. Для даунгрейда потребуются:
- 📱 SHSH-блобы (если Apple не подписывает версию). Их можно сохранить заранее с помощью
tsschecker. - 🔗 Прошивка (IPSW) для целевой версии.
- 🔧 Утилита
futurerestore(для восстановления с блобами).
Пример команды для даунгрейда с использованием блобов:
futurerestore --tsschecker tsschecker \
--latest-sep --latest-baseband \
--shsh путь/к/блобу.shsh2 \
путь/к/прошивке.ipsw
⚠️ Внимание: Без сохранённых SHSH-блобов даунгрейд на неподписанную версию iOS невозможен. Если вы не сохранили блобы заранее, единственный вариант — ждать, пока Apple снова не начнёт подписывать старую прошивку (что случается крайне редко).
Сценарий 3: Восстановление через DFU-mode (для критичных ошибок)
DFU-mode (Device Firmware Update) — это режим, в котором iPhone не загружает iOS, но позволяет перепрошить устройство на низком уровне. Он необходим, если:
- 🚨 iPhone не включается или застрял на логотипе Apple.
- 🔄 Восстановление через
Recovery Modeне помогает. - 📱 Устройство требует полной перепрошивки из-за сбоя NAND или Baseband.
Чтобы войти в DFU-mode:
- Подключите iPhone к Linux.
- Выполните команду для перевода в
DFU:
ideviceenterrecovery
irecovery -c "setenv auto-boot false"
irecovery -c "saveenv"
irecovery -c "reset"
После этого экран iPhone должен погаснуть (в DFU он полностью чёрный). Проверьте статус:
ideviceinfo
Если устройство определяется как DFU, можно приступать к восстановлению:
futurerestore --dfu путь/к/прошивке.ipsw
Что делать, если Linux не видит iPhone в DFU-mode?
Если команда ideviceinfo не показывает устройство, проверьте:
1. Правила udev — добавьте строку SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", MODE="0666" в /etc/udev/rules.d/99-iphone.rules и перезагрузите систему.
2. Версию usbmuxd — иногда помогает сборка из исходников (git clone https://github.com/libimobiledevice/usbmuxd).
3. Другой USB-порт (лучше использовать USB 2.0, так как USB 3.0 может вызывать проблемы).
Таблица совместимости инструментов и моделей iPhone
| Модель iPhone | libimobiledevice | futurerestore | Даунгрейд | Примечания |
|---|---|---|---|---|
| iPhone 6S–8 Plus | ✅ Полная | ✅ С блобами | ✅ До iOS 15.7.8 | Требуется отключение SEP для старых версий. |
| iPhone X–11 Pro Max | ✅ Полная | ✅ С блобами | ⚠️ Ограничено iOS 16.x | На iOS 17+ даунгрейд без блобов невозможен. |
| iPhone 12–13 Pro Max | ✅ Полная | ✅ С блобами | ❌ Без блобов | Поддержка A14/A15 требует последних версий futurerestore. |
| iPhone 14–15 Pro Max | ✅ Частичная | ⚠️ Экспериментальная | ❌ Нет | Требуется ручная компиляция libimobiledevice из master-ветки. |
Распространённые ошибки и их решения
Даже при правильной подготовке процесс прошивки может завершиться ошибкой. Вот самые частые проблемы и способы их решения:
- 🚫 Ошибка
ERROR: Unable to send iBSS
Причина: Неправильная прошивка или несовместимая версияfuturerestore.
Решение: Проверьте модель iPhone командойideviceinfo -k ProductTypeи скачайте правильныйIPSW. - 🔌 Устройство не определяется в
DFU
Причина: Проблемы сusbmuxdили правами доступа.
Решение: Перезапустите службу:sudo systemctl restart usbmuxdи проверьтеlsusb. - 🔒 Ошибка подписи
TSS request failed
Причина: Apple перестала подписывать прошивку.
Решение: Используйте сохранённые SHSH-блобы или выберите другую версию iOS.
⚠️ Внимание: Если при восстановлении вы видите ошибку ERROR: Unable to enter recovery mode after restore, это может означать повреждение NAND-памяти. В таком случае потребуется профессиональный ремонт с использованием программатора (например, JCID).
1. Правильно определить модель устройства (ProductType).
2. Использовать актуальные версии утилит (обновляйте через git).
3. Проверять подпись прошивки перед даунгрейдом.
-->
FAQ: Частые вопросы по прошивке iPhone на Linux
Можно ли прошить iPhone 15 на Linux без блобов?
Нет. Начиная с iPhone XS (и тем более на iPhone 15), Apple ужесточила контроль за прошивками. Без сохранённых SHSH-блобов даунгрейд или восстановление на неподписанную версию iOS невозможны. Единственный вариант — использовать текущую подписанную прошивку.
Как сохранить SHSH-блобы для будущего даунгрейда?
Используйте утилиту tsschecker:
tsschecker -d ваше_устройство -e ECID -i iOS_версия -s
Где ECID можно узнать командой ideviceinfo -k UniqueChipID. Блобы сохранятся в файл .shsh2 — его нужно хранить в надёжном месте.
Почему futurerestore выдаёт ошибку "Missing keys"?
Эта ошибка означает, что в вашей прошивке (IPSW) отсутствуют криптографические ключи для SEP или Baseband. Решения:
- Скачайте прошивку заново с официального источника (например, ipsw.me).
- Добавьте флаг
--latest-sep --latest-basebandк командеfuturerestore. - Если прошивка старая, попробуйте найти её на форумах (например, r/jailbreak).
Можно ли прошить iPhone через Linux, если он заблокирован (iCloud Lock)?
Нет. Блокировка iCloud (Activation Lock) привязана к аппаратному идентификатору устройства (ECID), и её нельзя обойти перепрошивкой. Единственные легальные способы:
- Ввести правильный Apple ID и пароль.
- Предоставить доказательство покупки и обратиться в поддержку Apple.
Любые обещания "разблокировки" через прошивку — мошенничество.
Какие дистрибутивы Linux лучше подходят для прошивки iPhone?
Лучше всего использовать Ubuntu 22.04 LTS или Debian 12, так как для них есть готовые пакеты libimobiledevice в репозиториях. На Arch Linux может потребоваться ручная сборка некоторых зависимостей. Избегайте экзотических дистрибутивов (например, Gentoo или NixOS), если у вас нет опыта настройки udev-правил.