* 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>
* 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>
* 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>
* "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>
* 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