Skip to main content

ipswd API (v1.0)

Download OpenAPI specification:Download

This allows you to interact with ipsw in a VERY powerful and flexible way via a RESTful API.

The ipswd design was heavily influenced by the design of dockerd. So many of the same concepts apply.

Daemon

Ping

This will return "OK" if the daemon is running.

Responses

Ping

This will return if 200 the daemon is running.

Responses

Version

This will return the daemon version info.

Responses

AEA

FcsKeys

Get fsc-keys PEM bytes for a given key.

path Parameters
key
required
string

fcs-keys.json PEM lookup key

Responses

Response samples

Content type
application/json
[
  • 0
]

DeviceList

List XCode Devices.

This will return JSON of all XCode devices.

Responses

Diff

Blobs

This will return the diff of two text blobs.

query Parameters
prev
string
curr
string

Responses

Files

This will return the diff of two text files.

query Parameters
prev
string
curr
string

Responses

Download

Latest iOS Build

Get latest iOS build.

Responses

Latest iOS Version

Get latest iOS version.

Responses

DSC

a2o

Convert virtual address to file offset.

query Parameters
path
required
string

path to dyld_shared_cache

addr
required
integer <uint64>

address to convert

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "sub_cache": {
    }
}

a2s

Convert virtual address to symbol.

query Parameters
path
required
string

path to dyld_shared_cache

addrs
required
Array of integers <uint64> [ items <uint64 > ]

address to convert

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Imports

Get list of dylibs that import a given dylib.

query Parameters
path
required
string

path to dyld_shared_cache

dylib
required
string

dylib to search for

Responses

Response samples

Content type
application/json
{
  • "apps": [
    ],
  • "dsc": [
    ]
}

Info

Get info about a given DSC

query Parameters
path
required
string

path to dyld_shared_cache

Responses

Response samples

Content type
application/json
{
  • "DeviceTrees": {
    },
  • "Plists": {
    }
}

MachO

Get MachO info for a given dylib in the DSC.

query Parameters
path
required
string

path to dyld_shared_cache

dylib
required
string

dylib to search for

Responses

Response samples

Content type
application/json
{
  • "ByteOrder": {
    },
  • "CPU": 0,
  • "Dysymtab": {
    },
  • "Flags": 0,
  • "Loads": [
    ],
  • "Magic": 0,
  • "NCommands": 0,
  • "Reserved": 0,
  • "Sections": [
    ],
  • "SizeCommands": 0,
  • "SubCPU": 0,
  • "Symtab": {
    },
  • "Type": 0
}

o2a

Convert file offset to virtual address

query Parameters
path
required
string

path to dyld_shared_cache

off
required
integer <uint64>

offset to convert

Responses

Response samples

Content type
application/json
{
  • "address": 0,
  • "sub_cache": {
    }
}

Slide Info

Get slide info for the DSC.

query Parameters
path
required
string

path to dyld_shared_cache

type
string="auth"

filter by mapping type

Responses

Response samples

Content type
application/json
{
  • "Pages": [
    ],
  • "SlideInfo": {
    },
  • "address": 0,
  • "file_offset": 0,
  • "flags": 0,
  • "init_prot": 0,
  • "max_prot": 0,
  • "name": "string",
  • "size": 0,
  • "slide_info_offset": 0,
  • "slide_info_size": 0
}

Split

Split the DSC into its constituent dylibs using XCode's dsc_extractor.bundle

NOTE: darwin ONLY

query Parameters
path
required
string

path to dyld_shared_cache

output
string

the folder to output the split dylibs

xcode_path
string

the path to the Xcode.app to use for splitting

Responses

Strings

Get strings in the DSC that match a given pattern.

query Parameters
path
required
string

path to dyld_shared_cache

pattern
required
string

regex to search for

Responses

Symbols

Get symbols addresses in the DSC that match a given lookup JSON payload.

query Parameters
path
required
string

path to dyld_shared_cache

required
Array of objects (Symbol)

symbols to lookup

Responses

Webkit

Get webkit version from dylib in the DSC.

query Parameters
path
required
string

path to dyld_shared_cache

Responses

Extract

DMG

Extract DMGs from an IPSW.

Request Body schema: application/json
required

Extraction options

dmg_type
string^(app|sys|fs)$
flatten
boolean
insecure
boolean
ipsw
string
output
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "dmg_type": "string",
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

DSC

Extract dyld_shared_caches from an IPSW.

Request Body schema: application/json
required

Extraction options

arches
Array of strings[ items non-empty ]
flatten
boolean
insecure
boolean
ipsw
string
output
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "arches": [
    ],
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

KBAG

Extract KBAGs from an IPSW.

Request Body schema: application/json
required

Extraction options

flatten
boolean
insecure
boolean
ipsw
string
output
string
pattern
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "pattern": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

Kernel

Extract kernelcaches from an IPSW.

Request Body schema: application/json
required

Extraction options

flatten
boolean
insecure
boolean
ipsw
string
output
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

Pattern

Extract files from an IPSW that match a given pattern.

Request Body schema: application/json
required

Extraction options

dmgs
boolean
flatten
boolean
insecure
boolean
ipsw
string
output
string
pattern
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "dmgs": true,
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "pattern": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

SPTM

Extract SPTM and TXM Firmwares.

Request Body schema: application/json
required

Extraction options

dmgs
boolean
flatten
boolean
insecure
boolean
ipsw
string
output
string
pattern
string
proxy
string
url
string

Responses

Request samples

Content type
application/json
{
  • "dmgs": true,
  • "flatten": true,
  • "insecure": true,
  • "ipsw": "string",
  • "output": "string",
  • "pattern": "string",
  • "proxy": "string",
  • "url": "string"
}

Response samples

Content type
application/json
null

USB

Info

Get info about USB connected devices.

Responses

Info

IPSW

Get IPSW info.

query Parameters
path
required
string

path to IPSW

Responses

Response samples

Content type
application/json
{
  • "DeviceTrees": {
    },
  • "Plists": {
    }
}

Remote IPSW

Get remote IPSW info.

query Parameters
url
required
string

url to IPSW

proxy
string

http proxy to use

insecure
boolean

ignore TLS errors

Responses

Response samples

Content type
application/json
{
  • "DeviceTrees": {
    },
  • "Plists": {
    }
}

OTA

Get OTA info.

query Parameters
path
required
string

path to OTA

Responses

Response samples

Content type
application/json
{
  • "DeviceTrees": {
    },
  • "Plists": {
    }
}

Remote OTA

Get remote OTA info.

query Parameters
url
required
string

url to OTA

proxy
string

http proxy to use

insecure
boolean

ignore TLS errors

Responses

Response samples

Content type
application/json
{
  • "DeviceTrees": {
    },
  • "Plists": {
    }
}

IPSW

Entitlements

Get IPSW Filesystem DMG MachO entitlements.

query Parameters
path
required
string

path to IPSW

pem_db
string

path to AEA pem DB JSON file

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Files

Get IPSW Filesystem DMG file listing.

query Parameters
path
required
string

path to IPSW

pem_db
string

path to AEA pem DB JSON file

Responses

launchd Config

Get launchd config from IPSW Filesystem DMG.

query Parameters
path
required
string

path to IPSW

pem_db
string

path to AEA pem DB JSON file

Responses

Kernel

Kexts

Get kernelcache KEXTs info.

query Parameters
path
required
string

path to kernelcache

Responses

Syscalls

Get kernelcache syscalls info.

query Parameters
path
required
string

path to kernelcache

Responses

Version

Get kernelcache version.

query Parameters
path
required
string

path to kernelcache

Responses

Response samples

Content type
application/json
{
  • "arch": "string",
  • "cpu": "string",
  • "darwin": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "type": "string",
  • "xnu": "string",
  • "clang": "string",
  • "flags": [
    ],
  • "version": "string"
}

MachO

Info

Get MachO info.

query Parameters
path
required
string

path to MachO

arch
string

architecture to get info for in universal MachO

Responses

Response samples

Content type
application/json
{
  • "ByteOrder": {
    },
  • "CPU": 0,
  • "Dysymtab": {
    },
  • "Flags": 0,
  • "Loads": [
    ],
  • "Magic": 0,
  • "NCommands": 0,
  • "Reserved": 0,
  • "Sections": [
    ],
  • "SizeCommands": 0,
  • "SubCPU": 0,
  • "Symtab": {
    },
  • "Type": 0
}

Mount

Mount

Mount a DMG inside a given IPSW.

path Parameters
type
required
string

type of DMG to mount (app|sys|fs)

query Parameters
path
required
string

path to IPSW

pem_db
string

path to AEA pem DB JSON file

Responses

Unmount

Unmount a previously mounted DMG.

Request Body schema: application/json
required

The unmount context (returned from /mount)

dmg_path
string
mount_point
string

Responses

Request samples

Content type
application/json
{
  • "dmg_path": "string",
  • "mount_point": "string"
}

Response samples

Content type
application/json
null

Syms

DSC

Get dyld_shared_cache for a given uuid.

path Parameters
uuid
required
string

dsc UUID

Responses

Response samples

Content type
application/json
{
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "DeletedAt": {
    },
  • "UpdatedAt": "2019-08-24T14:15:22Z",
  • "images": [
    ],
  • "shared_region_start": 0,
  • "uuid": "string"
}

Dylib

Get image from a DSC for a given uuid and address.

path Parameters
uuid
required
string

dsc UUID

addr
required
integer

pointer address

Responses

Response samples

Content type
application/json
{
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "DeletedAt": {
    },
  • "Symbols": [
    ],
  • "UpdatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "text_end": 0,
  • "text_start": 0,
  • "uuid": "string"
}

IPSW

Get IPSW for a given version OR build AND device.

query Parameters
version
required
string

version of IPSW

build
required
string

build of IPSW

device
required
string

device of IPSW

Responses

Response samples

Content type
application/json
{
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "DeletedAt": {
    },
  • "UpdatedAt": "2019-08-24T14:15:22Z",
  • "buildid": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "devices": [
    ],
  • "dscs": [
    ],
  • "file_system": [
    ],
  • "id": "string",
  • "kernels": [
    ],
  • "name": "string",
  • "version": "string"
}

MachO

Get MachO for a given uuid.

path Parameters
uuid
required
string

machO UUID

Responses

Response samples

Content type
application/json
{
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "DeletedAt": {
    },
  • "Symbols": [
    ],
  • "UpdatedAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "text_end": 0,
  • "text_start": 0,
  • "uuid": "string"
}

Scan

Scan symbols for a given IPSW.

query Parameters
path
required
string

path to IPSW

pem_db
string

path to AEA pem DB JSON file

Responses

Symbols

Get symbols for a given uuid.

path Parameters
uuid
required
string

file UUID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Symbol

Get symbol for a given uuid and address.

path Parameters
uuid
required
string

file UUID

addr
required
integer

symbol address

Responses

Response samples

Content type
application/json
{
  • "end": 0,
  • "start": 0,
  • "symbol": "string"
}