Распаковка прошивки iPhone: подробный гайд для пользователей и разработчиков

Прошивка iPhone (файлы с расширением .ipsw) — это архив, содержащий все компоненты операционной системы iOS, включая ядро, драйверы, системные приложения и файлы восстановления. Распаковка этого архива может понадобиться в самых разных ситуациях: от ручного обновления устройства до глубокого анализа структуры системы разработчиками или энтузиастами джейлбрейка. Однако процесс извлечения данных из .ipsw имеет свои нюансы — Apple не предоставляет официальных инструментов для этой задачи, а сами файлы защищены цифровыми подписями.

В этом руководстве мы разберём все актуальные способы распаковки прошивки для iPhone (включая модели от iPhone 5s до iPhone 15 Pro Max), используя инструменты для Windows, macOS и Linux. Вы узнаете, как работать с утилитами 7-Zip, dmg2img, ipsw, а также как обойти типичные ошибки при извлечении файлов. Особое внимание уделим распаковке файлов .dmg внутри прошивки — они содержат критически важные данные для модификации системы.

Зачем распаковывать прошивку iPhone?

На первый взгляд, необходимость вручную извлекать содержимое .ipsw может показаться сомнительной — ведь iTunes (или Finder на macOS Catalina и новее) сам устанавливает прошивку на устройство. Однако есть несколько сценариев, где распаковка становится незаменимой:

  • 🔧 Ручное восстановление — если стандартные методы не работают (например, ошибка 3194 или 14 в iTunes).
  • 🔓 Джейлбрейк — модификация системных файлов для получения root-доступа (актуально для iOS 15.0–16.5).
  • 🔍 Анализ безопасности — поиск уязвимостей или изучение структуры iOS исследователями.
  • 📱 Извлечение фирменных приложений (например, Setup.app или SpringBoard) для кастомных сборок.
  • 🛠️ Создание кастомных прошивок (например, для iPhone 4s или iPad 2 с поддержкой устаревших версий iOS).

Важно понимать, что распаковка прошивки не равносильна её установке. Вы получите доступ к файлам, но для их применения на устройстве потребуются дополнительные инструменты вроде ideviceinstaller или futurerestore. Кроме того, модификация системных файлов без джейлбрейка приведёт к "кирпичу" устройства — восстановлению через DFU-мод.

📊 Для чего вы распаковываете прошивку iPhone?
Для джейлбрейка
Для восстановления устройства
Для изучения структуры iOS
Для создания кастомной прошивки
Другое

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

Прежде чем приступить, убедитесь, что у вас есть:

  1. Файл прошивки .ipsw — скачайте его с официального источника (например, ipsw.me). Обратите внимание на модель устройства и версию iOS.
  2. Архиватор7-Zip (для Windows), The Unarchiver (для macOS) или unzip (для Linux).
  3. Утилиты для работы с .dmgdmg2img (кроссплатформенная) или hdiutil (встроенная в macOS).
  4. Место на диске — распакованная прошивка может занимать до 10–15 ГБ (например, iPhone 14 Pro Max на iOS 17.2).

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

☑️ Подготовка к распаковке прошивки

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

Способ 1: Распаковка IPSW на Windows (7-Zip + dmg2img)

На Windows процесс распаковки состоит из двух этапов: извлечение .ipsw как ZIP-архива и последующая конвертация .dmg-файлов в читаемый формат. Вот пошаговая инструкция:

  1. Скачайте и установите 7-Zip (версия не ниже 22.01).
  2. Скачайте dmg2img и распакуйте dmg2img.exe в папку с прошивкой.
  3. Кликните правой кнопкой по файлу .ipsw7-ZipРаспаковать здесь.
  4. В папке появятся файлы с расширениями .dmg, .plist и другие. Для работы с .dmg откройте Командную строку (Win + Rcmd) и выполните:
    dmg2img.exe -i "018-XXXX-XXX.dmg" -o "converted.img"

    где 018-XXXX-XXX.dmg — имя вашего .dmg-файла.

  5. Готовый .img-файл можно смонтировать через WinCDEmu или открыть в 7-Zip как архив.

Если dmg2img выдаёт ошибку "Unsupported compression type", попробуйте использовать dmg2img от vu1tur — эта версия поддерживает новые форматы сжатия Apple.

Способ 2: Распаковка на macOS (Terminal + hdiutil)

На macOS процесс проще благодаря встроенным утилитам. Вам не потребуются сторонние программы, если вы работаете с прошивками до iOS 16. Для новых версий (iOS 17+) может понадобиться ipsw от blacktop.

Инструкция:

  1. Откройте Terminal (Cmd + Пробел → введите Terminal).
  2. Перейдите в папку с прошивкой:
    cd ~/Downloads/

    (замените путь на актуальный).

  3. Распакуйте .ipsw как ZIP-архив:
    unzip -q 'iPhone_X_X.X_X_Restore.ipsw'

    (имя файла укажите своё).

  4. Конвертируйте .dmg в .img:
    hdiutil convert '018-XXXX-XXX.dmg' -format UDRW -o 'converted.img'
  5. Смонтируйте полученный образ:
    hdiutil attach 'converted.img.dmg'

    (обратите внимание на автоматическое добавление .dmg к имени).

Для прошивок iOS 17 и новее используйте ipsw:

ipsw extract iPhone_X_X.X_X_Restore.ipsw --component Firmware/all_flash/all_flash.n42ap.production

Эта команда извлечёт конкретный компонент (например, файлы модема или kernelcache).

Что делать, если hdiutil выдаёт ошибку "resource busy"?

Эта ошибка возникает, если образ уже смонтирован в системе. Откройте Дисковую утилиту, найдите смонтированный образ и нажмите Извлечь. После этого повторите команду.

Способ 3: Распаковка на Linux (ipsw + dmg2img)

На Linux процесс аналогичен macOS, но требует установки дополнительных пакетов. Мы будем использовать ipsw от blacktop и dmg2img.

Установите зависимости:

sudo apt update

sudo apt install -y unzip dmg2img git python3-pip

pip3 install pyimg4

Далее следуйте инструкции:

  1. Скачайте ipsw:
    git clone https://github.com/blacktop/ipsw.git
    

    cd ipsw

    make install

  2. Распакуйте прошивку:
    ipsw extract ~/Downloads/iPhone_X_X.X_X_Restore.ipsw

    (указывайте свой путь к файлу).

  3. Конвертируйте .dmg:
    dmg2img -i '018-XXXX-XXX.dmg' -o 'converted.img'
  4. Смонтируйте образ:
    sudo mount -o loop converted.img /mnt/ios_firmware/

    (предварительно создайте папку /mnt/ios_firmware).

Для извлечения конкретных файлов (например, kernelcache или DeviceTree) используйте флаг --component:

ipsw extract firmware.ipsw --component KernelCache

Работа с распакованными файлами: что искать внутри прошивки

После распаковки вы получите сотни файлов с непонятными названиями. Вот ключевые компоненты, которые могут быть полезны:

Файл/папка Описание Где используется
kernelcache Ядро iOS (сжатое в IMG4) Джейлбрейк, патчи для модификации системы
DeviceTree.* Конфигурация "железа" (модели, чипы, датчики) Порт прошивок на несопровождаемые устройства
restored_external Файлы для восстановления через iTunes Ручное обновление без потери данных
Firmware/dfu/* Файлы для режима DFU Восстановление "кирпичей"
rootfs.dmg Корневая файловая система iOS Извлечение системных приложений (MobileSafari.app, SpringBoard.app)

Для модификации файлов (например, для джейлбрейка) часто требуется декомпиляция или работа с IMG4-контейнерами. Используйте утилиты:

  • 🔧 img4tool — для распаковки/упаковки IMG4.
  • 🔧 jtool2 — для анализа бинарных файлов iOS.
  • 🔧 ldid — для подписи модифицированных файлов.

Типичные ошибки и их решения

При распаковке прошивки пользователи часто сталкиваются с проблемами. Вот самые распространённые и способы их решения:

⚠️ Внимание: Если 7-Zip выдаёт ошибку "Headers Error" при открытии .ipsw, значит файл скачан не полностью. Повторите загрузку и проверьте контрольную сумму (SHA1) на сайте ipsw.me.
Ошибка Причина Решение
dmg2img: unsupported compression Новый формат сжатия в iOS 15+ Используйте dmg2img от vu1tur
hdiutil: image not recognized .dmg с нестандартной сигнатурой Конвертируйте через dmg2img вместо hdiutil
ipsw: no such component Неверное имя компонента Проверьте список компонентов командой ipsw components firmware.ipsw
mount: wrong fs type Файловая система APFS не поддерживается Используйте apfs-fuse для монтирования на Linux
⚠️ Внимание: Если вы распаковываете прошивку для iPhone с чипом A12 и новее (iPhone XS, iPhone 11 и т.д.), файлы kernelcache и DeviceTree могут быть зашифрованы с использованием IMG4. Для их распаковки потребуется ключ iv и key, которые можно извлечь из iBoot с помощью img4tool.

FAQ: Частые вопросы о распаковке прошивки iPhone

Можно ли распаковать прошивку без компьютера, прямо на iPhone?

Нет, iOS не предоставляет инструментов для работы с .ipsw-файлами. Однако вы можете использовать джейлбрейк-твики вроде Filza или iFile, чтобы просматривать уже установленные системные файлы (но не модифицировать их без риска повредить систему).

Как проверить, что прошивка оригинальная и не модифицирована?

Сравните контрольную сумму (SHA1 или SHA256) скачанного файла с эталонной на сайте ipsw.me. Также можно использовать команду:

shasum -a 256 iPhone_X_X.X_X_Restore.ipsw

Если хэши совпадают — файл оригинальный.

Можно ли из распакованной прошивки извлечь приложения вроде Safari или Камеры?

Да, но только в формате .app-пакетов (например, MobileSafari.app). Эти файлы находятся в rootfs.dmg по пути /Applications/. Однако установить их на не-джейлбрейкнутое устройство невозможно — iOS блокирует модификацию системных приложений.

Что такое файлы с расширением .im4p и как их открыть?

Файлы .im4p — это IMG4-контейнеры, используемые Apple для подписи компонентов прошивки. Для их распаковки используйте:

img4tool -e -p PAYLOAD.im4p -o payload.bin

где PAYLOAD.im4p — ваш файл. Потребуются ключи iv и key, которые можно извлечь из iBoot.

Можно ли распаковать прошивку для iPhone на Android-смартфоне?

Технически да, но это крайне неудобно. Вам потребуется Termux с установленными unzip, dmg2img и python. Однако из-за ограничений Android (отсутствие полноценной файловой системы) монтирование .dmg будет невозможно. Лучше использовать Windows/macOS/Linux.