
Ahora puedes reflejar y controlar tu iPhone con jailbreak a través de USB
ioscpy está en ejecución (Reservado, el autor lo implementará por completo)ioscpy sea inalámbrico (BLE, Wi-Fi) (Reservado, el autor lo implementará por completo)Un CLI para macOS, Linux y Windows que refleja y controla un iPhone con jailbreak por USB.
Con un solo dispositivo conectado, es todo lo que necesitas. Se conecta solo.
Hay dos partes. La app de Mac ejecuta el espejo; el paquete para iPhone permite controlar el teléfono. Instala ambas.
En el Mac, con Homebrew:
brew tap lautarovculic/ioscpy # the Mac app
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
En el iPhone con jailbreak, añade este repositorio en Sileo o Zebra, luego instala ioscpy desde él y haz respring:
https://lautarovculic.github.io/ioscpy-repo/
El repositorio incluye compilaciones rootless y rootful, y el gestor de paquetes elige la que coincide con el 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
Todavía no hay una compilación predefinida para Linux. Compila el host desde el código fuente. El paquete del dispositivo es el mismo que en macOS y se instala desde el repositorio de Sileo/Zebra de arriba.
Clona este repositorio y luego ejecuta el instalador:
./install.sh
--yes omite las confirmaciones. --prefix DIR instala en DIR en lugar de /usr/local y omite sudo cuando el directorio está dentro de $HOME. --uninstall elimina el binario instalado.
Requisitos previos en 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
Asegúrate de que usbmuxd esté en ejecución para que el dispositivo aparezca:
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
Compila el host con tu usuario y luego instala:
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
./install.sh también funciona en Arch Linux.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
Habilita el servicio
sudo systemctl enable --now usbmuxd.service
Comprueba si el dispositivo está conectado
idevice_id -l
Luego ejecuta el binario
cd host/target/release && chmod +x ioscpy
./ioscpy
El paso de compilación se mantiene con tu usuario para que se encuentre un cargo instalado con rustup. install-host es un objetivo separado que solo copia el binario compilado, por lo que funciona sin problemas con sudo sin necesidad de cargo en el PATH de root. Para una instalación sin sudo en tu directorio personal, usa make install-host PREFIX=$HOME/.local y asegúrate de que $HOME/.local/bin esté en tu PATH.
La decodificación H.264 funciona en Linux mediante el decodificador de software openh264. Usa --mjpeg si prefieres la ruta MJPEG.
En compositores Wayland que rechazan las decoraciones del lado del servidor (GNOME/mutter), ioscpy recurre automáticamente a X11/XWayland para que la ventana tenga una barra de título normal. Usa --wayland para permanecer en Wayland nativo en su lugar.
Todavía no hay una compilación predefinida para Windows. Compila el host desde el código fuente. El paquete del dispositivo es el mismo que en macOS y Linux y se instala desde el repositorio de Sileo/Zebra.
ioscpy en Windows reutiliza las herramientas USB que ya tiene una instalación de iOS y no reemplaza ningún controlador, por lo que Frida, objection, grapefruit, ideviceinfo, iTunes y cualquier otra herramienta usbmux siguen funcionando mientras se ejecuta.
Apple Mobile Device Support: se instala con iTunes desde apple.com (descarga la versión del sitio web de Apple, no la de Microsoft Store), o el paquete independiente AMDS. Esto proporciona el controlador USB y usbmuxd. iTunes debe ver el teléfono.
libimobiledevice-win32: proporciona iproxy.exe, idevice_id.exe,
ideviceinfo.exe. Instala con Scoop:
scoop install libimobiledevice
o con MSYS2:
pacman -S mingw-w64-x86_64-libimobiledevice
Asegúrate de que los tres archivos .exe estén en tu PATH (o colócalos junto a
ioscpy.exe). Compruébalo con idevice_id -l, que debería imprimir el UDID de tu dispositivo.
openh264 compila una pequeña biblioteca C mediante cc).PATH: el ensamblador 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
Usa --mjpeg si prefieres la ruta MJPEG en lugar de H.264. Si openh264 falla al compilar, confirma que nasm esté en PATH.
Después de un respring o de una conexión nueva, da al teléfono un toque físico en su pantalla antes de controlarlo desde el host. iOS solo confía en los eventos táctiles que provienen del digitalizador real, así que ese primer toque real es lo que permite que pasen los inyectados. Lo haces una vez y luego el host toma el control.
En Linux y Windows, usa Ctrl en lugar de Cmd para estos atajos (Ctrl+C, Ctrl+V, etc.); el portapapeles sigue sincronizándose en ambos sentidos.
Rotar el teléfono rota y redimensiona el espejo.
Hosts:
Dispositivos:
ioscpy se desarrolla y se prueba en los dispositivos anteriores. No tengo a mano un dispositivo rootful ni todas las versiones de iOS, por lo que la cobertura por layout es incompleta:
| layout | estado |
|---|---|
| rootless | compila; se ejecuta en el dispositivo roothide mediante /var/jb |
| roothide | funciona (.deb rootless mediante /var/jb) |
| rootful | compila y layout validado; tiempo de ejecución no probado |
Si ejecutas ioscpy en un iPhone, una versión de iOS o un jailbreak diferentes, ayuda a completar esta tabla. Sobre todo, rootful y otras versiones de iOS necesitan pruebas.
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
Requiere Rust, Theos ($THEOS), libimobiledevice (idevice_id, iproxy), ldid y dpkg-deb.
ioscpy sirve para controlar tu propio iPhone con jailbreak desde tu Mac y desde dispositivos Linux (Debian, Ubuntu y Arch Linux), a través del cable USB, en el mismo escritorio.
Para hosts Linux, el mismo requisito externo que en macOS: herramientas libimobiledevice (iproxy, idevice_id, ideviceinfo) y usbmuxd.
Ahora también se ejecuta en Windows, reutilizando las herramientas USB estándar de iOS sin reemplazar ningún controlador. Sigue siendo SOLO para iPhones con jailbreak.
| layout | dispositivo | iOS | inyección |
|---|
| 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 |