Files
2026-04-16 12:38:09 -07:00

369 lines
13 KiB
Markdown

<p align="center" style="text-align: center">
<img src="./resources/icons/app-icon/icon.png" width="25%"><br/>
</p>
<p align="center">
Cross-platform, open-source and free idevice management tool written in Rust <img src="https://rustacean.net/assets/rustacean-orig-noshadow.svg" width="25"> and Qt
<br/>
<br/>
<a href="https://github.com/iDescriptor/iDescriptor/blob/main/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/iDescriptor/iDescriptor"/>
</a>
<a href="https://github.com/iDescriptor/iDescriptor/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://github.com/iDescriptor/iDescriptor/actions/workflows/build.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/iDescriptor/iDescriptor/build-linux.yml?branch=main&logo=Github" alt="Build" />
</a>
<a href="https://github.com/iDescriptor/iDescriptor/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/iDescriptor/iDescriptor?include_prereleases&label=version"/>
</a>
<img alt="Platform" src="https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue.svg"/>
<img src="https://shields.io/badge/-Rust-3776AB?style=flat&logo=rust" >
<img alt="Language" src="https://img.shields.io/badge/C++-20-hotpink.svg"/>
<img alt="Qt" src="https://img.shields.io/badge/Qt-6-brightgreen.svg"/>
<a href="https://github.com/iDescriptor/iDescriptor/releases">
<img src="https://img.shields.io/badge/AppImage-available-brightgreen" alt="AppImage"/>
</a>
<a href="https://aur.archlinux.org/packages/idescriptor-git">
<img src="https://img.shields.io/badge/Arch_AUR-available-brightgreen" alt="AppImage"/>
</a>
<br/>
<br/>
<a href="https://opencollective.com/idescriptor">
<img src="https://img.shields.io/badge/OpenCollective-1F87FF?style=for-the-badge&logo=OpenCollective&logoColor=white" alt="AppImage"/>
</a>
<br/>
<br/>
<br/>
<div align="center">Sponsored by
<br/>
<a href="https://www.cape.co/"><img width="250" src="./resources/repo/cape.svg"></a>
<br/>
first-of-its kind private and secure consumer cellular service in the US
</div>
</p>
<br/>
<br/>
## Download
### DO NOT DOWNLOAD FROM ANY WEBSITE CLAIMING TO BE US WE ONLY HAVE https://idescriptor.github.io AND RELEASES WILL BE MADE FROM THIS REPO ONLY
<p align="center">
<a href="https://github.com/iDescriptor/iDescriptor/releases/latest">
<img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white" alt="Download for Windows"/>
</a>
<a href="https://github.com/iDescriptor/iDescriptor/releases/latest">
<img src="https://img.shields.io/badge/macOS-000000?style=for-the-badge&logo=apple&logoColor=white" alt="Download for macOS"/>
</a>
<a href="https://github.com/iDescriptor/iDescriptor/releases/latest">
<img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black" alt="Download for Linux"/>
</a>
<a href="https://aur.archlinux.org/packages/idescriptor-git">
<img src="https://img.shields.io/badge/Arch_AUR-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white" alt="Install from AUR"/>
</a>
</p>
### Installation Instructions
#### Windows
- **Installer (.msi)**: Download and run the installer. Recommended for most users.
- **Portable (.zip)**: Extract and run `iDescriptor.exe`. No installation required.
- **Choco** :
```bash
choco install idescriptor --version=0.1.0
```
#### macOS
- **Apple Silicon**: Download the `.dmg` file for M1/M2/M3/MX Macs.
<br/>
Open the `.dmg` and drag iDescriptor to Applications.
<br/>
After moving the app to Applications, run the code below
<br/>
```shell
xattr -c ~/Applications/iDescriptor.app
```
[Click here to learn more about why this is needed](#damaged-error-on-macos).
- **Intel**: Download the `.dmg` file for Intel-based Macs.
<br/>
Open the `.dmg` and drag iDescriptor to Applications.
<br/>
You shouldn't run into any issues on Intel Macs but if you do, [check this out](#damaged-error-on-macos).
#### 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
<hr/>
<br/>
# Windows 11 Dark (Acrylic) - v0.4.0
<p align="center">
<img src="./resources/repo/win-11-mica-dark.png"><br/>
</p>
# Windows 11 Light (Acrylic) - v0.4.0
<p align="center">
<img src="./resources/repo/win-11-mica-light.png"><br/>
</p>
# Other platforms
<p align="center">
<img src="./resources/repo/crossplatform.png"><br/>
</p>
</br>
</br>
</br>
## Features
### Connection
| Feature | Status | Notes |
| ------------------- | -------------- | --------------------------------------------- |
| USB Connection | ✅ Implemented | Fully supported on Windows, macOS, and Linux. |
| Wireless Connection | ✅ Implemented | Starting from v0.4.0 |
### 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. |
| [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. |
| Developer Disk Images | ✅ Implemented | Manage and mount developer disk images. **( iOS 6- 16)** |
## Fully Theme Aware
<p align="center">
<img src="./resources/repo/macos-theme.gif"><br/>
</p>
<p align="center">
<img src="./resources/repo/ubuntu-theme.gif"><br/>
</p>
## AirPlay
### Cast your device screen to your computer!
<p align="center">
<img src="./resources/repo/airplay.gif"><br/>
</p>
## App Store
### Download and Install Apps directly from the Apple Store!
You need to sign in with your Apple ID to use this feature.
<p align="center">
<img src="./resources/repo/ipatool.png"><br/>
</p>
## Virtual Location
### Simulate GPS location on your iDevice!
<p align="center">
<img src="./resources/repo/virtual-location.png"><br/>
</p>
## 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
<p align="center">
<img src="./resources/repo/win-ifuse.gif"><br/>
</p>
#### Ubuntu / Linux
<p align="center">
<img src="./resources/repo/ifuse.gif"><br/>
</p>
### Gallery
<p align="center">
<img src="./resources/repo/gallery.png"><br/>
</p>
### File Explorer
<p align="center">
<img src="./resources/repo/file-explorer.png"><br/>
</p>
## Cable Info
<p align="center">
<img src="./resources/repo/cable-info-genuine.png"><br/>
</p>
## Network Device Discovery
<p align="center">
<img src="./resources/repo/network-devices.png"><br/>
</p>
## SSH Terminal
### Open up a terminal on your Jailbroken iDevice!
<p align="center">
<img src="./resources/repo/ssh-terminal.gif"><br/>
</p>
## Live Screen
Useful if your device does not support AirPlay
<p align="center">
<img src="./resources/repo/live-screen.png"><br/>
</p>
## **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.
<p align="center">
<img src="./resources/repo/authentication-required.png"><br/>
</p>
## Sponsors
## Cape (Platinum)
<br/>
<a href="https://www.cape.co/"><img width="405" src="./resources/repo/cape.svg"></a>
<br/>
Cape is first-of-its kind private and secure consumer cellular service in the US,
<a href="https://www.cape.co/get-cape/enroll">Try Cape risk-free for just $30 for your first month.</a> Use code `trycape30` at checkout to apply.
## Become a Sponsor
<div style="flex-direction: row; align-items: center; display: flex; gap: 10px;">
<span>You can become a sponsor from GitHub Sponsors or</span> <a href="https://opencollective.com/idescriptor">
<img src="https://img.shields.io/badge/OpenCollective-1F87FF?style=for-the-badge&logo=OpenCollective&logoColor=white" alt="AppImage"/>
</a>
</div>
## 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)
- [UxPlay (for AirPlay)](https://github.com/FDH2/UxPlay) - We use a modified version [here](https://github.com/iDescriptor/uxplay)
## 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
```
For more info [UDEV.md](./UDEV.md)
# Contributing
Contributions are welcome!
We actively develop on dev branch, so please base your pull requests off of that branch.
You can also send a pr to main branch but it should be something related to building, publish to some package manager or documentation.
## Roadmap
**Planned Features**
- Migrate to idevice-rs `DONE`
- Wireless Connection Support `DONE`
- Install IPA files directly from the app
- Virtual Location Support for iOS 17 and above `DONE`
- Migrate to UCRT for better performance and stability `Windows`
- New UI/UX improvements `Windows`
- Read gallery from Photos.sqlite
- Download any version of any app from app store
- Implement sideloading
- Import music
- Companion app on device
**You can always become a sponsor/donate to request/prioritize a feature or speed up the development process!**
## Damaged Error on macOS
<p align="center">
<img src="./resources/repo/damaged-error-macos.png" width="55%"><br/>
</p>
If you encounter a similar "damaged" error when trying to open the app on macOS, you can resolve this by running the following command in the terminal:
```shell
xattr -c ~/Applications/iDescriptor.app
```
You need to run this because macOS blocks apps that are not signed by an Apple Developer ID. By clearing the extended attributes, you can bypass this security feature.
This not something specific to iDescriptor, for example [check this out](https://github.com/deskflow/deskflow/issues/7606).
You can be more explicit and only remove the quarantine attribute like so:
```shell
xattr -dr com.apple.quarantine /Applications/iDescriptor.app
```
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=iDescriptor/iDescriptor&type=date&legend=top-left)](https://www.star-history.com/#iDescriptor/iDescriptor&type=date&legend=top-left)