
Ahora puedes reflejar y controlar tu iPhone con jailbreak a través de USB
ioscpy se está ejecutando (Reservado, el autor lo implementará por completo)ioscpy inalámbrico (BLE, Wi-Fi) (Reservado, el autor lo implementará por completo)Una CLI para macOS, Linux y Windows que refleja y controla un iPhone con jailbreak por USB.
Con un dispositivo conectado, eso es todo lo que necesitas. Se conecta por sí solo.
Hay dos partes. La app de Mac ejecuta el espejo, el paquete de 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 coincida 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 --record out.mp4 # record the mirrored screen while mirroring (video only)
ioscpy --debug # full diagnostics
ioscpy --version
--record PATH escribe lo que hay en la pantalla reflejada a un MP4 mientras la sesión
se ejecuta. El flujo H.264 que el teléfono ya envía se multiplexa directamente al archivo, así que
nada se recodifica y la grabación cuesta una escritura en búfer por fotograma; la ventana
permanece tan receptiva como estaba. El flujo no lleva audio, así que las grabaciones son
silenciosas. Una reconexión inicia un nuevo archivo (out-2.mp4, out-3.mp4, …) en lugar de
sobrescribir el que escribió la sesión interrumpida.
La pista comienza en el primer keyframe tras el inicio de la sesión, y el archivo se
finaliza cuando se cierra la ventana. La grabación sigue la orientación propia del flujo,
así que una sesión capturada con el teléfono en horizontal se almacena rotada;
la rotación de QuickTime, o una pasada de ffmpeg -display_rotation 90 -i out.mp4 -c copy,
lo corrige sin recodificar tampoco.
Todavía no hay una compilación precompilada para Linux. Compila el host desde el código fuente. El paquete del dispositivo es el mismo que en macOS, instalado desde el repositorio de Sileo/Zebra de arriba.
Clona este repositorio, 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á bajo $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 se está ejecutando para que el dispositivo aparezca:
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
Compila el host como tu usuario, 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 como tu usuario para que se encuentre un cargo instalado por rustup.
install-host es un objetivo separado que solo copia el binario compilado, así que
se ejecuta bien bajo sudo sin necesitar cargo en el PATH de root. Para una instalación
sin sudo en tu home, 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 a través del decodificador de software openh264. Pasa
--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 obtenga una barra de título
normal. Pasa --wayland para permanecer en Wayland nativo en su lugar.
Todavía no hay una compilación precompilada para Windows. Compila el host desde el código fuente. El paquete del dispositivo es el mismo que en macOS y Linux, instalado desde el repositorio de Sileo/Zebra.
ioscpy en Windows reutiliza las herramientas USB que una configuración de iOS ya tiene, y no reemplaza ningún controlador, así 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 (obtén la compilación del sitio web de Apple, no la de Microsoft Store), o el paquete AMDS independiente. Esto proporciona el controlador USB y usbmuxd. iTunes debe ver el teléfono.
libimobiledevice-win32: proporciona iproxy.exe, idevice_id.exe,
ideviceinfo.exe. Instálalo 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 a través de 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
Pasa --mjpeg si prefieres la ruta MJPEG en lugar de H.264. Si openh264 falla al
compilar, confirma que nasm está en el PATH.
Tras un respring o 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 los inyectados pasen. Lo haces una vez, luego el host toma el control.