Commit Graph

530 Commits

Author SHA1 Message Date
Jackson Coxson
0944708a8f Allow rppairing with underlying RemoteXPC connection 2026-02-18 09:09:43 -07:00
Jackson Coxson
7077e70e24 Send weird flags after opening reply stream 2026-02-17 07:41:17 -07:00
Jackson Coxson
7782df8bd9 Set RemoteXPC initial root ID to 0 2026-02-17 07:33:51 -07:00
Jackson Coxson
93d2f1b28c Merge master into rppairing-try2 2026-02-14 13:32:14 -07:00
khcrysalis
b459eebe9d feat: support ios-arm64_x86_64-maccatalyst in xcframework (#69)
* feat: support maccatalyst in xcframework

* fix: missing ios-macabi targets in ci
2026-02-14 13:19:32 -07:00
neo
c246362f54 chore(readme): update (#68)
* feat(springboard): add get_icon subcommand

* chore: update readme
2026-02-14 13:18:37 -07:00
neo
bfe44e16e4 feat: notification proxy (#70)
* init

* chore: clippy and fmt

* feat: ffi wrapper

* feat: multi-observe and timeout to notification proxy

* fix: nitpicks

1. proxy death its onw error in emun #69
2. make returned stream actual stream, copied from 54439b85dd/idevice/src/services/bt_packet_logger.rs (L126-L138)
2026-02-14 13:16:26 -07:00
neo
54439b85dd feat(springboard): get homescreen icon metrics (#67)
* feat(springboard): get homescreen icon metrics

* chore: clippy and fmt
2026-02-13 13:00:47 -07:00
Jackson Coxson
a523f0cb9c Bump version v0.1.53 2026-02-13 12:10:20 -07:00
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
f8c5010b34 Start work on iOS rppairing 2025-12-31 16:12:47 -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
637758ad7f Create pair_rsd_ios tool 2025-12-23 07:23:26 -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
f5be1a000a Add more debug logging to rppairing 2025-12-19 00:01:28 -07:00
Jackson Coxson
d6e7b9aef4 Use idevice-srp crate 2025-12-18 21:32:40 -07:00
Jackson Coxson
4bea784260 Initial rppairing support 2025-12-18 21:21:30 -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