- 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
Use my tap (includes extras version)
brew install blacktop/tap/ipswOR use the official formula
brew install ipswsudo snap install ipswscoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git 
scoop install blacktop/ipsw❯ 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.
graph TD
A[Download] --> B[Extract]
B --> C[Parse]
C --> D[Dump]
D --> E[Search]
E --> F[Symbolicate]
    A collection of ipsw diffs can be found here:
You have questions, need support and or just want to talk about ipsw?
Here are ways to get in touch with the ipsw community:
- 
macOSIPSW etc support is sometimes brokenAutomated testing of ipswis 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)
Big shout out to Jonathan Levin's amazing books and his legendary jtool
MIT Copyright (c) 2018-2025 blacktop