[package]
edition = "2024"
name = "idevice"
version = "0.1.59"
authors = ["Jackson Coxson"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust library to interact with services on iOS devices."
documentation = "https://docs.rs/idevice"
readme = "README.md"
keywords = [
"lockdownd",
"ios",
]
license = "MIT"
repository = "https://github.com/jkcoxson/idevice"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
afc = [
"dep:chrono",
"dep:futures",
]
amfi = []
application_listing = ["dvt"]
aws-lc = [
"rustls",
"rustls/aws-lc-rs",
"tokio-rustls/aws-lc-rs",
]
bt_packet_logger = []
companion_proxy = []
condition_inducer = ["dvt"]
core_device = [
"xpc",
"dep:uuid",
"dep:ns-keyed-archive",
]
core_device_proxy = [
"dep:serde_json",
"dep:json",
"dep:byteorder",
]
crashreportcopymobile = ["afc"]
debug_proxy = []
default = ["aws-lc"]
device_info = ["dvt"]
diagnostics_relay = []
dvt = [
"dep:byteorder",
"dep:ns-keyed-archive",
]
energy_monitor = ["dvt"]
full = [
"afc",
"amfi",
"bt_packet_logger",
"companion_proxy",
"core_device",
"core_device_proxy",
"crashreportcopymobile",
"debug_proxy",
"diagnostics_relay",
"dvt",
"energy_monitor",
"graphics",
"device_info",
"application_listing",
"condition_inducer",
"network_monitor",
"sysmontap",
"heartbeat",
"house_arrest",
"installation_proxy",
"installcoordination_proxy",
"xctest",
"location_simulation",
"misagent",
"mobile_image_mounter",
"mobileactivationd",
"mobilebackup2",
"wda",
"notification_proxy",
"pair",
"pcapd",
"preboard_service",
"remote_pairing",
"restore_service",
"rsd",
"screenshotr",
"springboardservices",
"syslog_relay",
"tcp",
"tunnel_tcp_stack",
"tss",
"tunneld",
"usbmuxd",
"xpc",
]
graphics = [
"dvt",
"rsd",
]
heartbeat = [
"tokio/macros",
"tokio/time",
]
house_arrest = ["afc"]
installation_proxy = [
"dep:async_zip",
"dep:futures",
"async_zip/tokio",
"async_zip/deflate",
]
installcoordination_proxy = []
location_simulation = []
misagent = []
mobile_image_mounter = ["dep:sha2"]
mobileactivationd = ["dep:reqwest"]
mobilebackup2 = []
network_monitor = ["dvt"]
notification_proxy = [
"tokio/macros",
"tokio/time",
"dep:async-stream",
"dep:futures",
]
obfuscate = ["dep:obfstr"]
openssl = [
"dep:openssl",
"dep:tokio-openssl",
]
pair = [
"chrono/default",
"tokio/time",
"dep:sha2",
"dep:rsa",
"dep:x509-cert",
"dep:web-time",
]
pcapd = []
preboard_service = []
remote_pairing = [
"dep:serde_json",
"dep:json",
"dep:x25519-dalek",
"dep:ed25519-dalek",
"dep:hkdf",
"dep:chacha20poly1305",
"dep:idevice-srp",
"dep:siphasher",
"dep:uuid",
"dep:aes",
"dep:cbc",
"dep:hmac",
"dep:sha1",
]
restore_service = []
ring = [
"rustls",
"rustls/ring",
"tokio-rustls/ring",
]
rsd = ["xpc"]
rustls = [
"dep:rustls",
"dep:tokio-rustls",
]
screenshotr = []
springboardservices = []
syslog_relay = ["dep:bytes"]
sysmontap = [
"dvt",
"energy_monitor",
]
tcp = ["tokio/net"]
tss = [
"dep:uuid",
"dep:reqwest",
]
tunnel_tcp_stack = ["dep:jktcp"]
tunneld = [
"dep:serde_json",
"dep:json",
"dep:reqwest",
]
usbmuxd = [
"tokio/net",
"dep:futures",
]
wasm = [
"dep:getrandom_02",
"dep:getrandom_04",
"dep:rustls-pki-types",
"dep:wasmtimer",
"wasm-crypto",
]
wasm-crypto = [
"rustls",
"dep:rustls-rustcrypto",
]
wda = [
"dep:serde_json",
"tokio/time",
"tokio/net",
]
xctest = [
"dvt",
"installation_proxy",
"afc",
"dep:uuid",
"dep:ns-keyed-archive",
"tunnel_tcp_stack",
"rsd",
"core_device_proxy",
]
xpc = [
"dep:indexmap",
"dep:uuid",
"dep:async-stream",
"dep:futures",
]
[lib]
name = "idevice"
path = "src/lib.rs"
[dependencies.aes]
version = "0.8"
optional = true
[dependencies.async-stream]
version = "0.3.6"
optional = true
[dependencies.async_zip]
version = "0.0.18"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.byteorder]
version = "1.5"
optional = true
[dependencies.bytes]
version = "1.10"
optional = true
[dependencies.cbc]
version = "0.1"
features = ["alloc"]
optional = true
[dependencies.chacha20poly1305]
version = "0.10"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
default-features = false
[dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.hkdf]
version = "0.12"
optional = true
[dependencies.hmac]
version = "0.12"
optional = true
[dependencies.idevice-srp]
version = "0.6"
optional = true
[dependencies.indexmap]
version = "2.11"
features = ["serde"]
optional = true
[dependencies.jktcp]
version = "0.1.1"
optional = true
[dependencies.json]
version = "0.12"
optional = true
[dependencies.ns-keyed-archive]
version = "0.1.5"
optional = true
[dependencies.obfstr]
version = "0.4"
optional = true
[dependencies.openssl]
version = "0.10"
optional = true
[dependencies.plist]
version = "1.8"
[dependencies.plist-macro]
version = "0.1.6"
[dependencies.rand]
version = "0.10"
[dependencies.reqwest]
version = "0.13"
features = ["json"]
optional = true
default-features = false
[dependencies.rsa]
version = "0.9"
features = ["sha2"]
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sha1]
version = "0.10"
optional = true
[dependencies.sha2]
version = "0.10"
features = ["oid"]
optional = true
[dependencies.siphasher]
version = "1"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"io-util",
"time",
]
[dependencies.tokio-openssl]
version = "0.6"
optional = true
[dependencies.tokio-rustls]
version = "0.26"
optional = true
default-features = false
[dependencies.tracing]
version = "0.1.41"
[dependencies.uuid]
version = "1.18"
features = [
"serde",
"v3",
"v4",
]
optional = true
[dependencies.web-time]
version = "1"
optional = true
[dependencies.x25519-dalek]
version = "2"
optional = true
[dependencies.x509-cert]
version = "0.2"
features = [
"builder",
"pem",
]
optional = true
default-features = false
[dev-dependencies.bytes]
version = "1.10.1"
[dev-dependencies.tokio]
version = "1.43"
features = ["full"]
[dev-dependencies.tun-rs]
version = "2.0.8"
features = ["async_tokio"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
"fs",
"rt-multi-thread",
]
[target."cfg(not(windows))".dependencies.libc]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_02]
version = "0.2"
features = ["js"]
optional = true
default-features = false
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_04]
version = "0.4"
features = ["wasm_js"]
optional = true
default-features = false
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.rustls-pki-types]
version = "1"
features = ["web"]
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.rustls-rustcrypto]
version = "0.0.2-alpha"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasmtimer]
version = "0.4"
features = ["tokio"]
optional = true
default-features = false