
Maintenant, vous pouvez refléter et contrôler votre iPhone jailbreaké via USB.
ioscpy est en cours d’exécution (Réservé, l’auteur implémentera cela entièrement)ioscpy sans fil (BLE, Wi-Fi) (Réservé, l’auteur implémentera cela entièrement)Un CLI macOS, Linux et Windows qui affiche en miroir et contrôle un iPhone jailbreaké via USB.
Un seul appareil branché suffit. Il se connecte tout seul.
Il y a deux volets. L’application Mac affiche le miroir, le paquet iPhone permet de contrôler le téléphone. Installez les deux.
Sur le Mac, avec Homebrew :
brew tap lautarovculic/ioscpy # the Mac app
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
Sur l’iPhone jailbreaké, ajoutez ce dépôt dans Sileo ou Zebra, puis installez ioscpy depuis celui-ci et respring :
https://lautarovculic.github.io/ioscpy-repo/
Le dépôt contient à la fois les versions rootless et rootful, et le gestionnaire de paquets choisit celle qui correspond au jailbreak.
ioscpy --device <UDID> # pick a device when several are attached
ioscpy --list # list attached devices
ioscpy --no-keyboard # hide the on-screen keyboard, type from the Mac
ioscpy --mjpeg # force MJPEG video instead of the default H.264
ioscpy --debug # full diagnostics
ioscpy --version
Il n’y a pas encore de version précompilée pour Linux. Compilez l’hôte à partir des sources. Le paquet pour l’appareil est le même que sur macOS et s’installe depuis le dépôt Sileo/Zebra ci-dessus.
Clonez ce dépôt, puis exécutez l’installateur :
./install.sh
--yes ignore les invites de confirmation. --prefix DIR installe dans DIR au lieu de /usr/local et omet sudo lorsque le répertoire se trouve sous $HOME. --uninstall supprime le binaire installé.
Prérequis sur Debian/Ubuntu :
sudo apt install build-essential pkg-config nasm \
libimobiledevice-utils usbmuxd \
libxkbcommon-dev libwayland-dev \
libxcb1-dev libxkbcommon-x11-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Assurez-vous que usbmuxd est en cours d’exécution pour que l’appareil apparaisse :
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
Compilez l’hôte en tant que votre utilisateur, puis installez :
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
./install.sh fonctionne aussi sur Arch Linux.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
Activez le service
sudo systemctl enable --now usbmuxd.service
Vérifiez si l’appareil est connecté
idevice_id -l
Puis exécutez le binaire
cd host/target/release && chmod +x ioscpy
./ioscpy
L’étape de compilation reste sous votre utilisateur afin qu’un cargo installé via rustup soit trouvé.
install-host est une cible distincte qui se contente de copier le binaire compilé, elle
fonctionne donc sous sudo sans avoir besoin de cargo dans le PATH de root. Pour une installation
sans sudo dans votre répertoire personnel, utilisez make install-host PREFIX=$HOME/.local et assurez-vous
que $HOME/.local/bin est dans votre PATH.
Le décodage H.264 fonctionne sous Linux via le décodeur logiciel openh264. Passez
--mjpeg si vous préférez le chemin MJPEG.
Sur les compositeurs Wayland qui refusent les décorations côté serveur (GNOME/mutter),
ioscpy bascule automatiquement sur X11/XWayland afin que la fenêtre obtienne une barre
de titre normale. Passez --wayland pour rester sur Wayland natif à la place.
Il n’y a pas encore de version précompilée pour Windows. Compilez l’hôte à partir des sources. Le paquet pour l’appareil est le même que sur macOS et Linux, installé depuis le dépôt Sileo/Zebra.
ioscpy sous Windows réutilise l’outillage USB déjà présent dans une installation iOS et ne remplace aucun pilote, de sorte que Frida, objection, grapefruit, ideviceinfo, iTunes et tout autre outil usbmux continuent de fonctionner pendant son exécution.
Apple Mobile Device Support : installé avec iTunes depuis apple.com (choisissez la version du site Apple, pas celle du Microsoft Store), ou avec le paquet AMDS autonome. Celui-ci fournit le pilote USB et usbmuxd. iTunes doit voir le téléphone.
libimobiledevice-win32 : fournit iproxy.exe, idevice_id.exe,
ideviceinfo.exe. Installez-le avec Scoop :
scoop install libimobiledevice
ou avec MSYS2 :
pacman -S mingw-w64-x86_64-libimobiledevice
Assurez-vous que les trois fichiers .exe sont dans votre PATH (ou placez-les à côté de
ioscpy.exe). Vérifiez avec idevice_id -l, qui devrait afficher l’UDID de votre appareil.
openh264
compile une petite bibliothèque C via cc).PATH : l’assembleur de openh264 (scoop install nasm).git clone https://github.com/lautarovculic/ioscpy
cd ioscpy
cargo build --release --manifest-path host/Cargo.toml
.\host\target\release\ioscpy.exe --list # confirms the device is seen
.\host\target\release\ioscpy.exe # opens the mirror window
Passez --mjpeg si vous préférez le chemin MJPEG plutôt que H.264. Si openh264 échoue à
la compilation, vérifiez que nasm est dans PATH.
Après un respring ou une nouvelle connexion, donnez un appui physique sur l’écran du téléphone avant de le piloter depuis l’hôte. iOS ne fait confiance qu’aux événements tactiles provenant du numériseur réel, c’est donc ce premier appui réel qui laisse passer ceux qui sont injectés. Vous le faites une fois, puis l’hôte prend le relais.
Sur Linux et Windows, utilisez Ctrl à la place de Cmd pour ces raccourcis (Ctrl+C, Ctrl+V, etc.) ; le presse-papiers se synchronise toujours dans les deux sens.
Faire pivoter le téléphone fait pivoter et redimensionne le miroir.
Hôtes :
Appareils :
ioscpy est développé et testé sur les appareils ci-dessus. Je n’ai pas d’appareil rootful ni toutes les versions d’iOS sous la main, la couverture par type est donc incomplète :
| type | état |
|---|---|
| rootless | compile ; fonctionne sur l’appareil roothide via /var/jb |
| roothide | fonctionne (.deb rootless via /var/jb) |
| rootful | compile et type validé ; exécution non testée |
Si vous utilisez ioscpy sur un iPhone, une version d’iOS ou un jailbreak différents, aidez-nous à compléter ce tableau. Les versions rootful et les autres versions d’iOS demandent particulièrement des tests.
ioscpy --debughost/ Rust host CLI (macOS, Linux, and Windows)
device/ iOS package (Theos): daemon, ctl, tweak, jbcompat, packaging
protocol/ wire format docs, kept in lockstep with the code
scripts/ device deploy, respring, log, and diagnostics helpers
docs/ architecture, jailbreak compatibility, troubleshooting, release
make host-release # macOS host binary
make device-rootless # rootless .deb (Dopamine, palera1n-rootless, /var/jb)
make device-rootful # rootful .deb (palera1n-rootful, /)
make release # host plus both device variants
Nécessite Rust, Theos ($THEOS), libimobiledevice (idevice_id, iproxy), ldid et dpkg-deb.
ioscpy sert à contrôler votre propre iPhone jailbreaké depuis votre Mac et votre appareil Linux (Debian, Ubuntu et Arch Linux), via le câble USB, sur le même bureau.
Pour les hôtes Linux, même exigence externe que macOS : les outils libimobiledevice (iproxy,
idevice_id, ideviceinfo) et usbmuxd.
Il fonctionne désormais aussi sous Windows, en réutilisant les outils USB iOS standard sans remplacer aucun pilote. Il reste UNIQUEMENT destiné aux iPhone jailbreakés.
| type | appareil | iOS | injection |
|---|
| roothide | iPhone11,2 | 15.5 | ElleKit |
| roothide | iPhone10,4 | 16.7.12 | ElleKit |
| roothide | iPhone10,3 | 16.7.10 | ElleKit |
| roothide | iPhone14 | 16.3 | ------- |
| rootless | iPhone13 | 15.5 | ElleKit |