mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 06:26:15 +01:00
chore(readme): update (#68)
* feat(springboard): add get_icon subcommand * chore: update readme
This commit is contained in:
25
README.md
25
README.md
@@ -47,6 +47,8 @@ To keep dependency bloat and compile time down, everything is contained in featu
|
|||||||
|------------------------|-----------------------------------------------------------------------------|
|
|------------------------|-----------------------------------------------------------------------------|
|
||||||
| `afc` | Apple File Conduit for file system access.|
|
| `afc` | Apple File Conduit for file system access.|
|
||||||
| `amfi` | Apple mobile file integrity service |
|
| `amfi` | Apple mobile file integrity service |
|
||||||
|
| `bt_packet_logger` | Capture Bluetooth packets. |
|
||||||
|
| `companion_proxy` | Manage paired Apple Watches. |
|
||||||
| `core_device_proxy` | Start a secure tunnel to access protected services. |
|
| `core_device_proxy` | Start a secure tunnel to access protected services. |
|
||||||
| `crashreportcopymobile`| Copy crash reports.|
|
| `crashreportcopymobile`| Copy crash reports.|
|
||||||
| `debug_proxy` | Send GDB commands to the device.|
|
| `debug_proxy` | Send GDB commands to the device.|
|
||||||
@@ -55,13 +57,19 @@ To keep dependency bloat and compile time down, everything is contained in featu
|
|||||||
| `heartbeat` | Maintain a heartbeat connection.|
|
| `heartbeat` | Maintain a heartbeat connection.|
|
||||||
| `house_arrest` | Manage files in app containers |
|
| `house_arrest` | Manage files in app containers |
|
||||||
| `installation_proxy` | Manage app installation and uninstallation.|
|
| `installation_proxy` | Manage app installation and uninstallation.|
|
||||||
| `springboardservices` | Control SpringBoard (e.g. UI interactions). Partial support.|
|
| `installcoordination_proxy` | Manage app installation coordination.|
|
||||||
| `misagent` | Manage provisioning profiles on the device.|
|
|
||||||
| `mobilebackup2` | Manage backups.|
|
|
||||||
| `mobile_image_mounter` | Manage DDI images.|
|
|
||||||
| `location_simulation` | Simulate GPS locations on the device.|
|
| `location_simulation` | Simulate GPS locations on the device.|
|
||||||
|
| `misagent` | Manage provisioning profiles on the device.|
|
||||||
|
| `mobile_image_mounter` | Manage DDI images.|
|
||||||
|
| `mobileactivationd` | Activate/Deactivate device.|
|
||||||
|
| `mobilebackup2` | Manage backups.|
|
||||||
| `pair` | Pair the device.|
|
| `pair` | Pair the device.|
|
||||||
| `syslog_relay` | Relay system logs from the device |
|
| `pcapd` | Capture network packets.|
|
||||||
|
| `preboard_service` | Interface with Preboard.|
|
||||||
|
| `restore_service` | Restore service (recovery/reboot).|
|
||||||
|
| `screenshotr` | Take screenshots.|
|
||||||
|
| `springboardservices` | Control SpringBoard (icons, wallpaper, orientation, etc.).|
|
||||||
|
| `syslog_relay` | Relay system logs and OS trace logs from the device. |
|
||||||
| `tcp` | Connect to devices over TCP.|
|
| `tcp` | Connect to devices over TCP.|
|
||||||
| `tunnel_tcp_stack` | Naive in-process TCP stack for `core_device_proxy`.|
|
| `tunnel_tcp_stack` | Naive in-process TCP stack for `core_device_proxy`.|
|
||||||
| `tss` | Make requests to Apple's TSS servers. Partial support.|
|
| `tss` | Make requests to Apple's TSS servers. Partial support.|
|
||||||
@@ -73,16 +81,11 @@ To keep dependency bloat and compile time down, everything is contained in featu
|
|||||||
|
|
||||||
Finish the following:
|
Finish the following:
|
||||||
|
|
||||||
- springboard
|
- webinspector
|
||||||
|
|
||||||
Implement the following:
|
Implement the following:
|
||||||
|
|
||||||
- companion_proxy
|
|
||||||
- diagnostics
|
|
||||||
- mobilebackup2
|
|
||||||
- notification_proxy
|
- notification_proxy
|
||||||
- screenshot
|
|
||||||
- webinspector
|
|
||||||
|
|
||||||
As this project is done in my free time within my busy schedule, there
|
As this project is done in my free time within my busy schedule, there
|
||||||
is no ETA for any of these. Feel free to contribute or donate!
|
is no ETA for any of these. Feel free to contribute or donate!
|
||||||
|
|||||||
@@ -53,6 +53,21 @@ pub fn register() -> JkCommand {
|
|||||||
"get_homescreen_icon_metrics",
|
"get_homescreen_icon_metrics",
|
||||||
JkCommand::new().help("Gets home screen icon layout metrics"),
|
JkCommand::new().help("Gets home screen icon layout metrics"),
|
||||||
)
|
)
|
||||||
|
.with_subcommand(
|
||||||
|
"get_icon",
|
||||||
|
JkCommand::new()
|
||||||
|
.help("Gets an app's icon as PNG")
|
||||||
|
.with_argument(
|
||||||
|
JkArgument::new()
|
||||||
|
.with_help("Bundle identifier (e.g. com.apple.Maps)")
|
||||||
|
.required(true),
|
||||||
|
)
|
||||||
|
.with_flag(
|
||||||
|
JkFlag::new("save")
|
||||||
|
.with_help("Path to save the icon PNG file, or icon.png by default")
|
||||||
|
.with_argument(JkArgument::new().required(true)),
|
||||||
|
),
|
||||||
|
)
|
||||||
.subcommand_required(true)
|
.subcommand_required(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,6 +140,22 @@ pub async fn main(arguments: &CollectedArguments, provider: Box<dyn IdeviceProvi
|
|||||||
let metrics_value = plist::Value::Dictionary(metrics);
|
let metrics_value = plist::Value::Dictionary(metrics);
|
||||||
println!("{}", pretty_print_plist(&metrics_value));
|
println!("{}", pretty_print_plist(&metrics_value));
|
||||||
}
|
}
|
||||||
|
"get_icon" => {
|
||||||
|
let bundle_id = sub_args.next_argument::<String>().unwrap();
|
||||||
|
|
||||||
|
let icon_data = sbc
|
||||||
|
.get_icon_pngdata(bundle_id)
|
||||||
|
.await
|
||||||
|
.expect("Failed to get icon");
|
||||||
|
|
||||||
|
let save_path = sub_args
|
||||||
|
.get_flag::<String>("save")
|
||||||
|
.unwrap_or("icon.png".to_string());
|
||||||
|
|
||||||
|
tokio::fs::write(&save_path, icon_data)
|
||||||
|
.await
|
||||||
|
.expect("Failed to save icon");
|
||||||
|
}
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user