
Cross platform, open-source and free idevice management tool written in C++
## Download
### Installation Instructions
#### Windows
- **Installer (.msi)**: Download and run the installer. Recommended for most users.
- **Portable (.zip)**: Extract and run `iDescriptor.exe`. No installation required.
#### macOS
- **Apple Silicon**: Download the `.dmg` file for M1/M2/M3/MX Macs.
- **Intel**: Download the `.dmg` file for Intel-based Macs.
Open the `.dmg` and drag iDescriptor to Applications.
#### Linux
- **AppImage**: Download, unzip, and run.
- **Arch Linux**: Install from AUR:
```bash
sudo pacman -Syu
yay -S idescriptor-git
```
make sure to do "sudo pacman -Syu" otherwise it's not going to find libimobiledevice>=1.4.0

## Features
### Connection
| Feature | Status | Notes |
| --------------------------- | -------------------- | --------------------------------------------- |
| USB Connection | ✅ Implemented | Fully supported on Windows, macOS, and Linux. |
| Wireless Connection (Wi‑Fi) | ⚠️ To be implemented | - |
### Tools
| Feature | Status | Notes |
| ------------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------- |
| [AirPlay](#airplay) | ✅ Implemented | Cast your device screen to your computer. |
| [Download & Install Apps From Apple Store](#app-store) | ✅ Implemented | Download and install apps directly from the Apple Store. |
| [Virtual Location](#virtual-location) | ✅ Implemented | Simulate GPS location. Requires a mounted Developer Disk Image. **( iOS 6 - iOS 16)** |
| [iFuse Filesystem Mount](#ifuse-filesystem-mount) | ✅ Implemented | Mount the device's filesystem. (Windows & Linux only) |
| Gallery | ✅ Implemented | - |
| File Explorer | ✅ Implemented | Explore the device's filesystem. |
| Wireless Gallery Import | ✅ Implemented | Import photos wirelessly (requires the Shortcuts app on the iDevice). |
| [Cable Info](#cable-info) | ✅ Implemented | Check authenticity of connected USB cables and more. |
| [Network Device Discovery](#network-device-discovery) | ✅ Implemented | Discover and monitor devices on your local network. |
| [SSH Terminal](#ssh-terminal) **(Jailbroken)** | ✅ Implemented | Open up a terminal on your iDevice. |
| Query MobileGestalt | ✅ Implemented | Read detailed hardware and software information from the device. |
| [Live Screen](#live-screen) | ✅ Implemented | View your device's screen in real-time **(wired)**. |
| Developer Disk Images | ✅ Implemented | Manage and mount developer disk images. **( iOS 6 - iOS 16)** |
### Device Actions
| Feature | Status | Notes |
| ------------------- | -------------- | ----- |
| Restart Device | ✅ Implemented | - |
| Shutdown Device | ✅ Implemented | - |
| Enter Recovery Mode | ✅ Implemented | - |
## Fully Theme Aware


## AirPlay
### Cast your device screen to your computer!

## App Store
### Download and Install Apps directly from the Apple Store!
You need to sign in with your Apple ID to use this feature.

## Virtual Location
### Simulate GPS location on your iDevice! (iOS 6 - iOS 16)

## iFuse Filesystem Mount
### Use your iDevice as a regular DRIVE!
Literally mount your iDevice filesystem and use it as a regular drive , read and write are both allowed. Don't try to import photos or videos because it won't work that way, use the Gallery Import feature for that.
#### Windows

#### Ubuntu / Linux

### Gallery

### File Explorer

## Cable Info

## Network Device Discovery

## SSH Terminal
### Open up a terminal on your Jailbroken iDevice!

## Live Screen
Useful if your device does not support AirPlay

## **Authentication Required** ?
You might get this pop-up on any platform this is because this app uses secure backends to retrieve and store your Apple credentials. You can disable this in settings but it is not recommended and not safe for your Apple account. Also if you leave this enabled and sign in you can use the same credentials in ipatool without signing in again.

## Become a Sponsor
If you like this project and want to support its development, consider becoming a sponsor on [GitHub Sponsors](https://github.com/sponsors/yourusername).
## Thanks
- [libimobiledevice](https://libimobiledevice.org/)
- [ipatool](https://github.com/majd/ipatool) - We use a modified version [here](https://github.com/uncor3/libipatool-go)
- [QSimpleUpdater](https://github.com/alex-spataru/QSimpleUpdater) - We use a modified version [here](https://github.com/uncor3/ZUpdater)
- [airplay](https://github.com/rcarmo/RPiPlay) - We use a modified version [here](https://github.com/uncor3/airplay)
## Linux Udev Rules
iDescriptor will check for udev rules but in case it fails, you can manually add the udev rules by doing similar to the following:
```bash
@uncore sudo cat /etc/udev/rules.d/99-idevice.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", MODE="0666"
✘ Sun 6 Jul - 14:29 ~
@uncore sudo groupadd idevice
Sun 6 Jul - 14:30 ~
@uncore sudo usermod -aG idevice $USER
Sun 6 Jul - 14:30 ~
@uncore sudo udevadm control --reload-rules
sudo udevadm trigger
```
# Contributing
Contributions are welcome!
You can check the source code in some places we have TODOs and FIXMEs that you can work on.
For example
- [Photos.sqlite](https://github.com/iDescriptor/iDescriptor/blob/main/src/gallerywidget.cpp)
Or if you'd like to introduce new features, feel free to open an issue or a pull request!