
Agora você pode espelhar e controlar seu iPhone com jailbreak via USB.
ioscpy está em execução (Reservado, o Autor implementará isso completamente)ioscpy sem fio (BLE, Wi-Fi) (Reservado, o Autor implementará isso completamente)Um CLI para macOS, Linux e Windows que espelha e controla um iPhone com jailbreak via USB.
Com apenas um dispositivo conectado, é tudo que você precisa. Ele se conecta sozinho.
Existem duas partes. O app do Mac executa o espelhamento; o pacote do iPhone permite que o telefone seja controlado. Instale ambos.
No Mac, com o Homebrew:
brew tap lautarovculic/ioscpy # the Mac app
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
No iPhone com jailbreak, adicione este repositório no Sileo ou Zebra e instale o ioscpy a partir dele e faça respring:
https://lautarovculic.github.io/ioscpy-repo/
O repositório contém versões rootless e rootful, e o gerenciador de pacotes escolhe a que corresponde ao 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
Ainda não há uma versão pré-compilada para Linux. Compile o host a partir do código-fonte. O pacote do dispositivo é o mesmo do macOS, instalado a partir do repositório Sileo/Zebra acima.
Clone este repositório e execute o instalador:
./install.sh
--yes pula as solicitações de confirmação. --prefix DIR instala em DIR em vez de /usr/local e dispensa o sudo quando o diretório está sob $HOME. --uninstall remove o binário instalado.
Pré-requisitos no 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
Garanta que o usbmuxd esteja em execução para que o dispositivo apareça:
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
Compile o host como seu usuário e depois instale:
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
O ./install.sh também funciona no Arch Linux.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
Ative o serviço
sudo systemctl enable --now usbmuxd.service
Verifique se o dispositivo está conectado
idevice_id -l
Em seguida, execute o binário
cd host/target/release && chmod +x ioscpy
./ioscpy
A etapa de compilação é executada como seu usuário, para que um cargo instalado via rustup seja encontrado. install-host é um alvo separado que apenas copia o binário compilado, então ele roda normalmente com sudo sem precisar de cargo no PATH do root. Para uma instalação sem sudo no seu diretório pessoal, use make install-host PREFIX=$HOME/.local e certifique-se de que $HOME/.local/bin esteja no seu PATH.
A decodificação H.264 funciona no Linux por meio do decodificador de software openh264. Passe --mjpeg se preferir o caminho MJPEG.
Em compositores Wayland que recusam decorações do lado do servidor (GNOME/mutter), o ioscpy volta automaticamente para X11/XWayland para que a janela tenha uma barra de título normal. Passe --wayland para permanecer no Wayland nativo.
Ainda não há uma versão pré-compilada para Windows. Compile o host a partir do código-fonte. O pacote do dispositivo é o mesmo do macOS e do Linux, instalado a partir do repositório Sileo/Zebra.
O ioscpy no Windows reutiliza as ferramentas USB que uma configuração de iOS já possui e não substitui nenhum driver, portanto Frida, objection, grapefruit, ideviceinfo, iTunes e qualquer outra ferramenta usbmux continuam funcionando enquanto ele está em execução.
Apple Mobile Device Support: instalado com o iTunes do site da Apple (use a versão do site da Apple, não a da Microsoft Store) ou com o pacote AMDS autônomo. Isso fornece o driver USB e o usbmuxd. O iTunes deve ver o telefone.
libimobiledevice-win32: fornece iproxy.exe, idevice_id.exe, ideviceinfo.exe. Instale com o Scoop:
scoop install libimobiledevice
ou com o MSYS2:
pacman -S mingw-w64-x86_64-libimobiledevice
Garanta que os três arquivos .exe estejam no seu PATH (ou coloque-os ao lado do ioscpy.exe). Verifique com idevice_id -l, que deve mostrar o UDID do seu dispositivo.
openh264 compila uma pequena biblioteca C por meio do cc).PATH: o montador do 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
Passe --mjpeg se preferir o caminho MJPEG em vez de H.264. Se o openh264 falhar ao compilar, confirme se o nasm está no PATH.
Após um respring ou uma nova conexão, dê um toque físico na tela do telefone antes de controlá-lo pelo host. O iOS só confia em eventos de toque que vêm do digitalizador real, então esse primeiro toque real é o que permite que os toques injetados passem. Você faz isso uma vez e o host assume o controle.
No Linux e no Windows, use Ctrl no lugar de Cmd para esses atalhos (Ctrl+C, Ctrl+V e assim por diante); a área de transferência continua sincronizando nos dois sentidos.
Ao girar o telefone, o espelhamento gira e é redimensionado.
Hosts:
Dispositivos:
| layout | dispositivo | iOS | injeção |
|---|---|---|---|
| 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 |
O ioscpy é desenvolvido e testado nos dispositivos acima. Não tenho um dispositivo rootful nem todas as versões de iOS em mãos, então a cobertura por layout está incompleta:
| layout | status |
|---|---|
| rootless | compila; roda no aparelho roothide via /var/jb |
| roothide | funcionando (.deb rootless via /var/jb) |
| rootful | compila e layout validado; execução não testada |
Se você executar o ioscpy em um iPhone, versão do iOS ou jailbreak diferentes, ajude a preencher estas informações. Rootful e outras versões de iOS precisam especialmente de testes.
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
Requer Rust, Theos ($THEOS), libimobiledevice (idevice_id, iproxy), ldid e dpkg-deb.
O ioscpy destina-se a controlar o seu próprio iPhone com jailbreak a partir do seu Mac e de dispositivos Linux (Debian, Ubuntu e Arch Linux), pelo cabo USB, na mesma mesa.
Para hosts Linux, o mesmo requisito externo do macOS: ferramentas libimobiledevice (iproxy,
idevice_id, ideviceinfo) e usbmuxd.
Agora ele também roda no Windows, reutilizando as ferramentas USB padrão do iOS sem substituir nenhum driver. Ele ainda é APENAS para iPhones com jailbreak.