Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
116 lines (109 loc) · 4.27 KB
/
Copy pathCargo.toml
File metadata and controls
116 lines (109 loc) · 4.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[workspace]
resolver = "3"
members = [
"crates/ictl-device",
"crates/ictl-wda",
"crates/ictl-protocol",
"crates/ictl-l10n",
"crates/ictl-webinspector",
"crates/ictl-sign",
"crates/ictl-unlock",
"crates/ictl-daemon",
"crates/ictl-mcp",
"apps/iphone-control",
]
# vendor/ 下是 Impactor 的组件(MPL-2.0 / MIT),作为路径依赖使用,但不算本 workspace 成员:
# 不对它们跑 clippy/test,也不把它们的 lint 当成本项目的问题。
exclude = ["vendor"]
[workspace.package]
version = "0.2.5"
edition = "2024"
# rmcp 3.8 要求 1.88;Impactor/idevice 用 edition 2024
rust-version = "1.88"
license = "MIT"
publish = false
repository = "https://github.com/Derrors/iphone-control"
homepage = "https://github.com/Derrors/iphone-control"
# 全部锁精确版本:idevice 0.2.0 之前每个小版本都可能有破坏性变更(见 docs/decisions.md D9)
[workspace.dependencies]
idevice = { version = "=0.1.68", default-features = false, features = [
"ring",
"usbmuxd",
"pair",
"amfi",
"afc",
"core_device_proxy",
"tunnel_tcp_stack",
"rsd",
"xpc",
"core_device",
"display_stream",
"cryptexd",
"tss",
"installation_proxy",
"springboardservices",
"misagent",
"xctest",
# developer tools (IPHONE_CONTROL_DEV_TOOLS): os_trace logs, crash reports
"syslog_relay",
"crashreportcopymobile",
] }
# transport-streamable-http-server:控制台的 /mcp(MCP over HTTP)
rmcp = { version = "=3.8.0", features = ["server", "transport-io", "transport-streamable-http-server"] }
http = "=1.5.0"
http-body-util = "=0.1.5"
bytes = "=1.12.1"
tokio = { version = "=1.54.1", features = ["full"] }
# rustls-no-provider:不编进 aws-lc-rs(C 代码,编译慢、体积大);idevice/plume_core 用 ring,入口处显式装 ring 为默认 provider
reqwest = { version = "=0.13.5", default-features = false, features = ["form", "rustls-no-provider"] }
rustls = { version = "=0.23.46", default-features = false, features = ["ring"] }
# 控制台的 HTTPS(viewer --lan):两者已经在依赖树里(idevice、reqwest、plume_core),同样只用 ring
tokio-rustls = { version = "=0.26.6", default-features = false, features = ["ring"] }
rcgen = "=0.12.1"
quick-xml = "=0.42.0"
image = { version = "=0.25.10", default-features = false, features = ["png", "jpeg"] }
clap = { version = "=4.6.7", features = ["derive", "env"] }
clap_complete = "=4.6.11"
console = "=0.15.11"
termion = "=4.0.6"
serde = { version = "=1.0.229", features = ["derive"] }
serde_json = "=1.0.154"
thiserror = "=2.0.21"
tracing = "=0.1.44"
tracing-subscriber = { version = "=0.3.23", features = ["env-filter"] }
base64 = "=0.23.1"
anyhow = "=1.0.104"
plist = "=1.10.3"
uuid = { version = "=1.26.1", features = ["v4"] }
# 和 plume_core 同一份:比对证书和本机签名私钥的公钥(ictl-sign)
rsa = "=0.9.10"
x509-certificate = "=0.24.0"
zip = { version = "=9.4.1", default-features = false, features = ["deflate"] }
regex = "=1.13.1"
libc = "=0.2.191"
sha2 = "=0.10.9"
# vendored Impactor 组件(见 THIRD_PARTY.md)
plume_core = { path = "vendor/plume_core" }
plume_store = { path = "vendor/plume_store" }
ictl-device = { path = "crates/ictl-device" }
ictl-wda = { path = "crates/ictl-wda" }
ictl-protocol = { path = "crates/ictl-protocol" }
ictl-l10n = { path = "crates/ictl-l10n" }
ictl-webinspector = { path = "crates/ictl-webinspector" }
ictl-sign = { path = "crates/ictl-sign" }
ictl-unlock = { path = "crates/ictl-unlock" }
ictl-daemon = { path = "crates/ictl-daemon" }
ictl-mcp = { path = "crates/ictl-mcp" }
# Impactor 给 apple-codesign 0.29.0 打的权限补丁(0o755)。作为 git 依赖引用 Impactor 时
# 它自己的 [patch] 不生效,所以这里 vendor 打过补丁的副本(docs/decisions.md D6)。
[patch.crates-io]
apple-codesign = { path = "vendor/apple-codesign" }
# idevice 0.1.68 的 cryptexd install 会挂住(persistence 字段错、隧道 MSS),修复在上游 master 但还没发版
idevice = { git = "https://github.com/jkcoxson/idevice", rev = "89702099f4d7552f704f93b4526756abda319ceb" }
# 测试里现场生成 RSA 密钥(ictl-sign):不开优化的话大数运算要十几秒
[profile.dev.package.num-bigint-dig]
opt-level = 3
[profile.release]
lto = "thin"
codegen-units = 1
strip = true