Commit Graph

115 Commits

Author SHA1 Message Date
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
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
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
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
6d9f0987c1 Migrate to plist_macro crate for utils 2025-12-31 21:21:37 -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
Jackson Coxson
db894120da Add OpenSSL dependency 2025-11-15 11:45:34 -07:00
Jackson Coxson
fbdc290d88 Remove device_id argument for usbmuxd save pair record 2025-11-10 11:16:40 -07:00
Abdullah Al-Banna
b26dd17b13 impl tokio's AsyncRead/Write/Seek for AFC FileDescriptor (#33)
* AsyncWrite/Read/Seek

* clean up

* use only one field to store the future

This struct should not be shared across threads because simultaneous
operations
like reading, writing, or seeking could lead to data races or
inconsistent state, because the cursor moves.

Only one operation will ever run at a time, which allows us to safely
store
different types of pending operations (read, write, or seek) in the same
field.

* consume self without mut when closing

* clippy

* Add inner_file safety tests

* more tests

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2025-10-28 07:57:35 -06:00
Jackson Coxson
a297eed156 Replace log crate with tracing 2025-10-23 09:49:38 -06:00
Jackson Coxson
779db7ecec Print which screenshot protocol is being used in tool 2025-10-20 10:51:52 -06:00
Jackson Coxson
2ffeb0f25c Add listen command to usbmuxd connection 2025-10-18 18:10:53 -06:00
Jackson Coxson
7853f2d6d0 Initial implementation of installcoordination_proxy 2025-10-16 12:10:14 -06:00
Jackson Coxson
b0f871af99 Log if h4 type is unknown 2025-10-14 10:53:05 -06:00
ValorBao
ec81169347 Feature/dvt_notifications (#31)
* "feat: Monitor memory and app notifications  "

* "[MOD] treat both as the negative and positive representation of the channel code in the response"

* "feat: dvt add the notifications to Monitor memory and app notifications"

* "[MOD]print the notifications in tools"

* PR cleanup

* Fix clippy warning

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2025-09-25 09:34:13 -06:00
Jackson Coxson
7506ecd62e Create files for mobileactivationd 2025-09-22 15:55:29 -06:00
ValorBao
54dbbbb558 feat: support simulate location below ios17 (#30)
* "feat: support simulate location below ios17"

* "cargo fmt"
2025-09-22 10:43:29 -06:00
Jackson Coxson
34fb39f12d Clean up cargo clippy warnings 2025-09-16 14:05:03 -06:00
ValorBao
482c9805c4 feat: add screenshotr for iOS versions below iOS17 (#27)
* feat: add screenshot for iOS versions below iOS17

* "cargo fmt"

* Style cleanup

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2025-09-16 13:44:13 -06:00
ValorBao
c3333ed2df Feature/screenshot (#26)
* "dvt: add screen shot and change read_message in multiple message fragments"

* "dvt: Add processing multiple fragments to the message module in dvt "

* "cargo fmt"

* Rename screen_shot to screenshot

---------

Co-authored-by: Jackson Coxson <jkcoxson@gmail.com>
2025-09-09 09:43:16 -06:00
Jackson Coxson
a9739b4ce3 Partial implementation for preboard sevice 2025-09-05 11:40:13 -06:00
Ylarod
e604b3ec9e feat: add utils to install local ipa (#21)
* feat: add installation utils to install ipa

* cargo fmt

* clippy
2025-09-04 19:47:07 -06:00
Jackson Coxson
2b678369e7 Add docs note that the pcapd service is only available over USB 2025-09-04 19:37:10 -06:00
Jackson Coxson
ddd2f84dd1 Implement pcapd 2025-09-04 08:47:06 -06:00
Jackson Coxson
ca56575c6c Implement SavePairRecord 2025-09-03 19:26:11 -06:00
Ylarod
d463a53f04 feat: support launch app at ios17- (#23)
* feat: support launch app at ios17-

* cargo fmt

* clippy
2025-08-29 15:19:25 -06:00
Jackson Coxson
b70f531e1e Start console for app launch 2025-08-24 17:52:53 -06:00
Jackson Coxson
11c53dac86 Re-set lat/lon repeatedly in location sim tool 2025-08-22 18:27:44 -06:00
Jackson Coxson
47dbab0155 Implement bt_packet_logger 2025-08-17 20:44:53 -06:00
Jackson Coxson
ef7811b3a6 Implement diagnosticsservice 2025-08-15 20:19:37 -06:00
Jackson Coxson
94a361eb4e App service cpp example 2025-08-15 16:14:24 -06:00
Jackson Coxson
0c6a214a66 Cargo fmt tools 2025-08-13 08:16:24 -06:00
Ylarod
0bb5deada8 feat: impl parts of diagnostics and mobilebackup2 (#20)
* feat: add udid cache to idevice

* feat: impl diagnostics

* feat: impl mobilebackup2

* docs: update README.md

* fix: make clippy happy

* fix: make linux clippy happy

* fix: make linux clippy happy again

* fix: make clippy happy again

* fix: small updates
2025-08-13 07:41:48 -06:00
Jackson Coxson
5ee385c95c Fix cargo clippy warnings 2025-08-12 08:19:31 -06:00
Jackson Coxson
c79fb2226a Add companion proxy support 2025-08-11 16:40:04 -06:00
Jackson Coxson
0a0899cd8a Create concurrent TCP handle and implement RSD for non-lifetime structs 2025-08-11 10:41:58 -06:00
Jackson Coxson
d59f028251 Use option<&str> instead of owned option string 2025-08-08 10:18:31 -06:00
Jackson Coxson
1515b1bab4 Conditionally compile crypto backend 2025-07-31 11:52:42 -06:00
Jackson Coxson
8ee58c3502 Add ring as optional crypto provider 2025-07-31 11:14:42 -06:00
Jackson Coxson
9f2de4d340 Partial diagnostics relay implementation 2025-07-30 15:47:54 -06:00
Jackson Coxson
10cb67f437 Add dir arg to crash_logs tool 2025-07-25 18:33:42 -06:00
Jackson Coxson
5531392cf3 Clean up tools warnings 2025-07-24 13:32:09 -06:00
Jackson Coxson
9329607939 Remove unused imports from app_service tool 2025-07-22 11:34:35 -06:00