Commit Graph

516 Commits

Author SHA1 Message Date
neo
cb375f88a1 feat(springboard): get device orientation (#65) 2026-02-13 07:54:00 -07:00
neo
c5aa731ee5 feat(springboard): add wallpaper preview command support (#64)
* feat(springboard): add wallpaper preview command support

* Use subargs to switch between preview type in sb cli

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2026-02-09 19:14:16 -07:00
Jackson Coxson
38a3a558b5 (BREAKING) implement host name parameter for lockdown pair 2026-02-06 16:45:27 -07:00
Jackson Coxson
496e099187 Make UUID an argument of trust subcommand in amfi 2026-01-30 08:56:07 -07:00
Jackson Coxson
77ea34f820 Bump version 2026-01-22 15:34:15 -07:00
fulln
9a71279fe9 feat(springboard): add get_icon_state and set_icon_state methods (#63)
* feat(springboard): add get_icon_state method for reading home screen layout

Add get_icon_state() method to SpringBoardServicesClient that retrieves
the current home screen icon layout from iOS devices.

Features:
- Read complete home screen layout including icon positions and folders
- Support for optional formatVersion parameter
- Works on all iOS versions (tested on iOS 18.7.3)
- Comprehensive documentation with usage examples

Note: This PR intentionally does NOT include set_icon_state() as that
functionality is non-operational on iOS 18+ (see issue #62 for details).

Tested on:
- Device: iPhone 16,2 (iPhone 15 Pro)
- iOS: 18.7.3 (Build 22H217)

* feat(springboard): add set_icon_state method with date precision fix

- Implement set_icon_state() to modify home screen layout
- Implement set_icon_state_with_version() with format_version parameter
- Add truncate_dates_to_seconds() to convert nanosecond precision dates to second precision
- Fix iOS compatibility issue where high-precision dates were rejected
- Successfully tested on iOS 18.7.3 (previously believed to be restricted)
- Follows pymobiledevice3 implementation pattern

* refactor(utils): extract truncate_dates_to_seconds to utils::plist module

- Move date truncation logic from springboardservices to reusable utils::plist module
- Add comprehensive unit tests for date truncation functionality
- Add public API documentation for the utility function
- This makes the date normalization logic available for other services that may need it

* perf(springboard): normalize dates on read instead of write

- Move date truncation from set_icon_state to get_icon_state
- Eliminates unnecessary clone() operation in set_icon_state
- Better performance when setting icon state multiple times
- Cleaner API: data from get_icon_state is directly usable in set_icon_state
- Users don't need to worry about date precision issues

* refactor(springboard): address PR feedback - use Option<&str> and add error validation

- Change format_version parameter from Option<String> to Option<&str> for consistency
- Remove outdated iOS 18+ restriction comments since setIconState works on iOS 18+
- Add error validation to get_icon_state method similar to get_icon_pngdata
- Update documentation to reflect accurate iOS compatibility

* Fix cargo clippy warnings

* Fix clippy warnings in plist.rs

* Add springboard CLI commands

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2026-01-22 15:32:01 -07:00
Jackson Coxson
142708c289 Add a no-session flag to lockdown CLI 2026-01-19 16:02:17 -07:00
uncor3
5bb9330cf6 add diag relay c++ bindings, screenshotr ffi (#58) 2026-01-14 14:46:47 -07:00
Jackson Coxson
ead5fbf3d3 Add house arrest bindings 2026-01-14 13:39:10 -07:00
SAMSAM
f44a5c0779 fix: fixes misagent cmd + adds new install subcmd (#59)
Calling init twice is a bad idea and causes the program to crash, also adds an install command for provisioning profile paths
2026-01-14 13:01:04 -07:00
Jackson Coxson
1db78e6a8d Re-add iOS checks to CI 2026-01-14 08:14:09 -07:00
Jackson Coxson
bb64dc0b1c Implement lockdown enter recovery 2026-01-05 12:00:11 -07:00
Jackson Coxson
a4e17ea076 Poll correct sub argument tree for domain flag in lockdown CLI 2026-01-05 08:08:11 -07:00
Jackson Coxson
6dcfd4bc4c Move domain to flag of lockdown CLI 2026-01-05 07:57:46 -07:00
Jackson Coxson
602e1ba855 Replace off_t with Windows-allowed value in AFC FFI 2026-01-05 07:23:55 -07:00
Jackson Coxson
ae39fcb7df Add afc2 abstractions (#55) 2026-01-05 07:08:40 -07:00
Jackson Coxson
13be1ae377 Add read_entire to FFI
a
2026-01-05 06:56:11 -07:00
Jackson Coxson
96b380ebc9 Correctly parse DDI image lookup result 2026-01-05 06:42:56 -07:00
Jackson Coxson
189dd5caf2 Refactor idevice tools into single binary 2026-01-03 16:58:36 -07:00
Jackson Coxson
2eebbff172 Bump reqwest 2026-01-03 16:58:36 -07:00
Jackson Coxson
166c497878 Implement seek and tell for AFC (#42) 2026-01-03 16:37:55 -07:00
Jackson Coxson
6d9f0987c1 Migrate to plist_macro crate for utils 2025-12-31 21:21:37 -07:00
Jackson Coxson
081cb2f8d8 Bump version 2025-12-28 19:33:59 -07:00
Jackson Coxson
35c3d61355 Make escrow bag an optional pairing file field 2025-12-23 08:18:41 -07:00
Jackson Coxson
328224d46c cargo fmt 2025-12-22 12:26:43 -07:00
alexytomi
d8bff83753 Fix failure to compile to 32-bit (#49) 2025-12-21 09:20:24 -07:00
se2crid
ae5071a309 Include ErrorDescription in unknown device errors (#46)
* Include ErrorDescription in unknown device errors

* Remove unused error import from tracing
2025-12-20 13:31:30 -07:00
Abdullah Al-Banna
83e43aa3d6 add the futures dep for the afc feature (#48) 2025-12-20 13:30:26 -07:00
uncor3
2a6631f3da fix offline build (#47) 2025-12-19 21:10:42 -07:00
Jackson Coxson
e3c12ddf98 Remove provider free from mounter FFI example 2025-12-13 13:08:42 -07:00
Jackson Coxson
44e8b83698 Free data with underlying vec with vec recreation 2025-12-13 13:08:33 -07:00
Jackson Coxson
9776516544 Free the outer slice in C++ usbmuxd::get_devices 2025-12-13 12:34:41 -07:00
Jackson Coxson
080fea02eb Take ownership of socket in rsd_handshake_new FFI 2025-12-13 11:41:43 -07:00
Jackson Coxson
39d454d77d Add function to free arbitrary stream handle 2025-12-13 11:41:33 -07:00
Jackson Coxson
a3dcac93b2 Add plist_array_free helper function to FFI
a

b
2025-12-13 11:09:41 -07:00
Jackson Coxson
d2375e8f5c Convert plist array into boxed slice for installation_proxy get_apps FFI 2025-12-13 10:32:51 -07:00
Abdullah Al-Banna
9e8abb7d37 open an owned file in AFC (#44)
* ability to open an owned file

Signed-off-by: Abdullah Al-Banna <abdu.albanna@proton.me>

* get the inner afc of an owned file without closing the file

Signed-off-by: Abdullah Al-Banna <abdu.albanna@proton.me>

---------

Signed-off-by: Abdullah Al-Banna <abdu.albanna@proton.me>
2025-12-09 12:58:09 -07:00
Jackson Coxson
c60f0d102b Replace std fs dl callbacks with async tokio 2025-12-01 12:51:03 -07:00
Abdullah Al-Banna
5f1e03911f get and create a FileDescriptor from the fd (#43) 2025-11-30 09:43:28 -07:00
Jackson Coxson
c1b7009a7b Create diagnostics_relay bindings 2025-11-28 22:46:11 -07:00
Jackson Coxson
a708db6307 Bump version 2025-11-27 11:12:39 -07:00
Ylarod
c432627659 tools: add iproxy (#37)
* tools: add iproxy

* cargofmt and clippy cleanup

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2025-11-27 11:11:06 -07:00
Lorenzo Rizzotti
c0ec9b4bcd Add vectored IO to avoid userspace vec copy (#38) 2025-11-27 11:06:08 -07:00
Abdullah Al-Banna
c1bc887fd4 Raise the AFC max transfer to 1MB (#39)
Signed-off-by: Abdullah Al-Banna <abdu.albanna@proton.me>
2025-11-27 10:49:26 -07:00
Jackson Coxson
761cb06418 Bump version 2025-11-17 12:55:30 -07:00
Jackson Coxson
db4547e0da Warn if legacy compiled with rustls 2025-11-17 12:44:32 -07:00
Jackson Coxson
59c3c3a12c Add legacy argument to cpp start_session 2025-11-17 12:42:29 -07:00
Jackson Coxson
f11a1bafff Enable SSL on iOS < 5 2025-11-17 12:27:45 -07:00
Jackson Coxson
c9ca113239 Merge branch 'master' into openssl 2025-11-17 11:01:54 -07:00
Jackson Coxson
08d6b41536 Add debug derives for all possible structures 2025-11-15 12:01:10 -07:00