
Agora você pode espelhar e controlar seu iPhone com jailbreak via USB.
ioscpy está em execução (Reservado, o Autor implementará isto completamente)ioscpy sem fios (BLE, Wi-Fi) (Reservado, o Autor implementará isto completamente)Uma CLI para macOS, Linux e Windows que espelha e controla um iPhone com jailbreak via USB.
Com um dispositivo conectado, é tudo o que precisa. Ele conecta-se sozinho.
Existem dois lados. A aplicação Mac executa o espelhamento, o pacote iPhone permite que o telefone seja controlado. Instale ambos.
No Mac, com 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, depois instale o ioscpy a partir dele e faça respring:
https://lautarovculic.github.io/ioscpy-repo/
O repositório contém builds rootless e rootful, e o gestor de pacotes escolhe o 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 --record out.mp4 # record the mirrored screen while mirroring (video only)
ioscpy --debug # full diagnostics
ioscpy --version
--record PATH escreve o que está no ecrã espelhado para um MP4 enquanto a sessão
decorre. O fluxo H.264 que o telefone já envia é multiplexado diretamente para o ficheiro, por isso
nada é recodificado e a gravação custa uma escrita em buffer por frame; a janela
mantém-se tão responsiva como estava. O fluxo não transporta áudio, por isso as gravações são
silenciosas. Uma reconexão inicia um novo ficheiro (out-2.mp4, out-3.mp4, …) em vez de
sobrescrever o que a sessão interrompida escreveu.
A faixa começa no primeiro keyframe após o início da sessão, e o ficheiro é
finalizado quando a janela fecha. A gravação segue a orientação do próprio fluxo,
por isso uma sessão capturada com o telefone na horizontal é armazenada rodada;
a rotação do QuickTime, ou uma passagem de ffmpeg -display_rotation 90 -i out.mp4 -c copy,
corrige isso sem recodificar nenhum dos dois.
Ainda não há pré-compilado para Linux. Compile o host a partir do código-fonte. O pacote do dispositivo é o mesmo que no macOS, instalado a partir do repositório Sileo/Zebra acima.
Clone este repositório, depois execute o instalador:
./install.sh
--yes ignora os pedidos de confirmação. --prefix DIR instala em DIR em vez de /usr/local e omite sudo quando o diretório está sob $HOME. --uninstall remove o binário instalado.
Pré-requisitos em 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
Certifique-se de que o usbmuxd está 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 o seu utilizador, depois instale:
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
./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
Depois execute o binário
cd host/target/release && chmod +x ioscpy
./ioscpy
O passo de compilação permanece como o seu utilizador para que um cargo instalado via rustup seja encontrado.
install-host é um alvo separado que apenas copia o binário compilado, por isso
funciona bem sob sudo sem precisar de cargo no PATH do root. Para uma instalação
sem sudo na sua home, use make install-host PREFIX=$HOME/.local e certifique-se
de que $HOME/.local/bin está no seu PATH.
A descodificação H.264 funciona no Linux através do descodificador 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 recorre automaticamente a X11/XWayland para que a janela obtenha uma
barra de título normal. Passe --wayland para permanecer em Wayland nativo.
Ainda não há pré-compilado para Windows. Compile o host a partir do código-fonte. O pacote do dispositivo é o mesmo que no macOS e Linux, instalado a partir do repositório Sileo/Zebra.
O ioscpy no Windows reutiliza as ferramentas USB que uma configuração iOS já tem, e não substitui nenhum driver, por isso Frida, objection, grapefruit, ideviceinfo, iTunes e qualquer outra ferramenta usbmux continuam a funcionar enquanto ele é executado.
Apple Mobile Device Support: instalado com o iTunes de apple.com (obtenha a build do site da Apple, não a da Microsoft Store), ou o pacote AMDS autónomo. Isto 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 Scoop:
scoop install libimobiledevice
ou com MSYS2:
pacman -S mingw-w64-x86_64-libimobiledevice
Certifique-se de que os três ficheiros .exe estão no seu PATH (ou coloque-os junto ao
ioscpy.exe). Verifique com idevice_id -l, que deve imprimir o UDID do seu dispositivo.
openh264
compila uma pequena biblioteca C através de cc).PATH: o assembler 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 do H.264. Se o openh264 falhar a
compilação, confirme que o nasm está no PATH.
Após um respring ou uma nova conexão, dê ao telefone um toque físico no seu ecrã antes de o controlar a partir do host. O iOS só confia em eventos de toque que vêm do digitizer real, por isso esse primeiro toque real é o que permite que os injetados passem. Faça-o uma vez, depois o host assume o controlo.