Skip to content

blacktop/ipsw

Repository files navigation

IPSW Logo

ipsw

iOS/macOS Research Swiss Army Knife


What is ipsw πŸ€”

  • IPSW downloader/exploder
  • OTA downloader/exploder
  • macho parser
  • ObjC class-dump
  • Swift class-dump 🚧
  • dyld_shared_cache parser
  • kernelcache parser
  • img4 parser/decrypter
  • device-tree parser
  • ARM v9-a disassember
  • research tool

Install

macOS

Use my tap (includes extras version)

brew install blacktop/tap/ipsw

OR use the official formula

brew install ipsw

Linux

sudo snap install ipsw

Windows

scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git 
scoop install blacktop/ipsw

Getting Started

❯ ipsw

Download and Parse IPSWs (and SO much more)

Usage:
  ipsw [command]

Available Commands:
  appstore        Interact with the App Store Connect API
  class-dump      ObjC class-dump a dylib from a DSC or MachO
  device-list     List all iOS devices
  diff            Diff IPSWs
  download        Download Apple Firmware files (and more)
  dtree           Parse DeviceTree
  dyld            Parse dyld_shared_cache
  ent             Search IPSW filesystem DMG or Folder for MachOs with a given entitlement
  extract         Extract kernelcache, dyld_shared_cache or DeviceTree from IPSW/OTA
  fw              Firmware commands
  help            Help about any command
  idev            USB connected device commands
  img4            Parse Img4
  info            Display IPSW/OTA Info
  kernel          Parse kernelcache
  macho           Parse MachO
  mdevs           List all MobileDevices in IPSW
  mount           Mount DMG from IPSW
  ota             Parse OTAs
  pkg             List contents of a DMG/PKG file
  plist           Dump plist as JSON
  ssh             SSH into a jailbroken device
  swift-dump      🚧 Swift class-dump a dylib from a DSC or MachO
  symbolicate     Symbolicate ARM 64-bit crash logs (similar to Apple's symbolicatecrash)
  version         Print the version number of ipsw
  watch           Watch Github Commits

Flags:
      --color           colorize output
      --config string   config file (default is $HOME/.config/ipsw/config.yaml)
  -h, --help            help for ipsw
      --no-color        disable colorize output
  -V, --verbose         verbose output

Use "ipsw [command] --help" for more information about a command.

Documentation

graph TD
A[Download] --> B[Extract]
B --> C[Parse]
C --> D[Dump]
D --> E[Search]
E --> F[Symbolicate]
Loading

ipsw Diffs

A collection of ipsw diffs can be found here:

Community

You have questions, need support and or just want to talk about ipsw?

Here are ways to get in touch with the ipsw community:

Follow Twitter Follow Mastodon GitHub Discussions

Known Issues

  • macOS IPSW etc support is sometimes broken

    Automated testing of ipsw is challenging as it requires a lot of resources to test all the different IPSW flavors and OS versions etc. No CI/CD can really handle that unless I want to wait forever for it to run on each commit. Please create an issue and I'll fix it as soon as I can ❀️ (NOTE: a comprehensive test suite is in the roadmap so I can at least test on the few local IPSWs I have)

Credit

Big shout out to Jonathan Levin's amazing books and his legendary jtool

Stargazers

Stargazers over time

License

MIT Copyright (c) 2018-2025 blacktop