Repolode
blacktop

blacktop/ipsw

A command-line toolkit for Apple firmware research, covering IPSW/OTA downloads, Mach-O and dyld cache analysis, kernelcaches, and connected iOS devices.

Stars
3,871
Forks
326
Open issues
23
Last commit
4 hours ago

What is it?

ipsw is a Go command-line toolkit for researchers who examine Apple firmware and operating system internals. It downloads and unpacks IPSW and OTA firmware packages for iOS and macOS, and it can also fetch macOS installers, Xcode, and KDKs.

Once firmware is in hand, the tool inspects Mach-O binaries, disassembles ARM64 code, and works with dyld shared caches. It can extract dylibs, dump Objective-C headers, and read Swift metadata. For the kernel, it extracts KEXTs, lists syscalls and symbols, and compares kernelcaches between builds.

The CLI also talks to connected iOS devices to list apps, transfer files over AFC, capture syslogs, and mount developer images. Other commands cover IMG4 parsing, AEA decryption, crash log symbolication, and optional LLM-assisted decompilation. A separate ipswd daemon exposes a REST API for automation.

Key features

  • 01Download IPSWs, OTAs, macOS installers, Xcode, and KDKs from the command line.
  • 02Inspect Mach-O load commands, symbols, signatures, and entitlements, and disassemble ARM64 code.
  • 03Extract dylibs and dump Objective-C headers from dyld shared caches.
  • 04Extract KEXTs and compare kernelcaches across firmware builds.
  • 05List apps, transfer files, and capture logs from connected iOS devices.
  • 06Expose a REST API through the ipswd daemon for automation.

Use cases

  • Extracting the kernelcache from a new iOS firmware release for analysis.
  • Dumping Objective-C headers for private frameworks from a dyld shared cache.
  • Diffing two firmware builds to see which components changed.
  • Symbolicating iOS crash logs during debugging or security research.

Quick start

  1. 1

    Install on macOS with Homebrew (extras build)

    brew install blacktop/tap/ipsw
  2. 2

    Install on Linux with snap

    sudo snap install ipsw
  3. 3

    Download the latest IPSW for iPhone 15 Pro

    ipsw download ipsw --device iPhone16,1 --latest

Things to know

  • Some commands depend on the host OS or build variant, and Frida support needs a separate build.
  • Building from source requires Go 1.26 or later and a C toolchain for CGO.

In collections

Topics

FAQ

What is ipsw?
A command-line toolkit for Apple firmware research, covering IPSW/OTA downloads, Mach-O and dyld cache analysis, kernelcaches, and connected iOS devices. ipsw is a Go command-line toolkit for researchers who examine Apple firmware and operating system internals. It downloads and unpacks IPSW and OTA firmware packages for iOS and macOS, and it can also fetch macOS installers, Xcode, and KDKs.
Is ipsw free to use? What license does it have?
ipsw is open source under the MIT license. Check the license terms before using it in commercial products.
Is ipsw still maintained?
Actively maintained. The last commit to ipsw was on Nov 7, 2026.
What can I use ipsw for?
Extracting the kernelcache from a new iOS firmware release for analysis. Dumping Objective-C headers for private frameworks from a dyld shared cache. Diffing two firmware builds to see which components changed. Symbolicating iOS crash logs during debugging or security research.
How do I install ipsw?
Install on macOS with Homebrew (extras build): brew install blacktop/tap/ipsw Install on Linux with snap: sudo snap install ipsw Download the latest IPSW for iPhone 15 Pro: ipsw download ipsw --device iPhone16,1 --latest
Where can I get ipsw?
The source code and installation instructions are on GitHub: https://github.com/blacktop/ipsw

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects