
이제 USB를 통해 탈옥된 아이폰을 미러링하고 제어할 수 있습니다.
ioscpy가 실행 중이라는 알림도 추가 (예약됨, 작성자가 완전히 구현할 예정)ioscpy 무선화 (BLE, Wi-Fi) (예약됨, 작성자가 완전히 구현할 예정)USB로 연결된 탈옥된 iPhone을 미러링하고 제어할 수 있는 macOS, Linux 및 Windows CLI입니다.
하나의 장치만 연결하면 됩니다. 자동으로 연결됩니다.
두 가지 측면이 있습니다. Mac 앱이 미러를 실행하고, iPhone 패키지가 장치가 제어되도록 합니다. 둘 다 설치하세요.
Mac에서 Homebrew 사용:
brew tap lautarovculic/ioscpy # Mac 앱
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
탈옥된 iPhone에서 Sileo 또는 Zebra에 이 저장소를 추가한 다음 ioscpy를 설치하고 respring하세요:
https://lautarovculic.github.io/ioscpy-repo/
이 저장소는 rootless 및 rootful 빌드를 모두 제공하며, 패키지 관리자가 탈옥에 맞는 것을 선택합니다.
ioscpy --device <UDID> # 여러 장치가 연결되어 있을 때 특정 장치 선택
ioscpy --list # 연결된 장치 나열
ioscpy --no-keyboard # 화상 키보드 숨기기, Mac에서 입력
ioscpy --mjpeg # 기본 H.264 대신 MJPEG 비디오 강제 사용
ioscpy --debug # 전체 진단 정보
ioscpy --version
Linux용 사전 빌드는 아직 없습니다. 소스에서 호스트를 빌드하세요. 장치 패키지는 macOS와 동일하며, 위의 Sileo/Zebra 저장소에서 설치합니다.
이 저장소를 클론한 후 설치 프로그램을 실행하세요:
./install.sh
--yes는 확인 프롬프트를 건너뜁니다. --prefix DIR는 /usr/local 대신 DIR에 설치하고 디렉터리가 $HOME 아래에 있을 때 sudo를 생략합니다. --uninstall는 설치된 바이너리를 제거합니다.
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
usbmuxd가 실행 중인지 확인하여 장치가 나타나도록 하세요:
sudo systemctl enable --now usbmuxd
idevice_id -l # 장치가 연결되어 있으면 UDID가 출력되어야 함
사용자 권한으로 호스트를 빌드한 후 설치하세요:
make host-release
sudo make install-host # /usr/local/bin/ioscpy에 설치
ioscpy --version
./install.sh는 Arch Linux에서도 작동합니다.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
서비스 활성화
sudo systemctl enable --now usbmuxd.service
장치가 연결되었는지 확인
idevice_id -l
그런 다음 바이너리 실행
cd host/target/release && chmod +x ioscpy
./ioscpy
빌드 단계는 사용자 권한으로 유지되므로 rustup으로 설치된 cargo가 발견됩니다. install-host는 빌드된 바이너리를 복사하는 별도의 대상이므로 root의 PATH에 cargo가 없어도 sudo 아래에서 정상 실행됩니다. 홈 디렉터리에 sudo 없이 설치하려면 make install-host PREFIX=$HOME/.local을 사용하고 $HOME/.local/bin이 PATH에 있는지 확인하세요.
H.264 디코딩은 Linux에서 openh264 소프트웨어 디코더를 통해 작동합니다. MJPEG 경로를 선호하는 경우 --mjpeg를 전달하세요.
서버 측 장식을 거부하는 Wayland 컴포지터(GNOME/mutter)에서 ioscpy는 자동으로 X11/XWayland로 폴백하여 창이 일반 제목 표시줄을 갖도록 합니다. 기본 Wayland를 유지하려면 --wayland를 전달하세요.
Windows용 사전 빌드는 아직 없습니다. 소스에서 호스트를 빌드하세요. 장치 패키지는 macOS 및 Linux와 동일하며, Sileo/Zebra 저장소에서 설치합니다.
Windows의 ioscpy는 iOS 설정에 이미 있는 USB 도구를 재사용하며, 드라이버를 교체하지 않습니다. 따라서 실행 중에도 Frida, objection, grapefruit, ideviceinfo, iTunes 및 기타 usbmux 도구가 계속 작동합니다.
Apple Mobile Device Support: apple.com에서 iTunes(마이크로소프트 스토어 버전이 아닌 Apple 웹사이트 빌드) 또는 독립 실행형 AMDS 패키지와 함께 설치됩니다. USB 드라이버와 usbmuxd를 제공합니다. iTunes가 장치를 인식해야 합니다.
libimobiledevice-win32: iproxy.exe, idevice_id.exe, ideviceinfo.exe를 제공합니다. Scoop으로 설치:
scoop install libimobiledevice
또는 MSYS2 사용:
pacman -S mingw-w64-x86_64-libimobiledevice
세 개의 .exe 파일이 PATH에 있는지 확인하거나 ioscpy.exe 옆에 넣으세요. idevice_id -l로 확인하면 장치 UDID가 출력되어야 합니다.
openh264 디코더가 cc를 통해 작은 C 라이브러리를 컴파일함).PATH에 있어야 함: 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 # 장치가 인식되는지 확인
.\host\target\release\ioscpy.exe # 미러 창 열기
H.264 대신 MJPEG 경로를 선호하는 경우 --mjpeg를 전달하세요. openh264 빌드가 실패하면 nasm이 PATH에 있는지 확인하세요.
respring 또는 새 연결 후, 호스트에서 장치를 제어하기 전에 iPhone 화면을 한 번 물리적으로 터치하세요. iOS는 실제 디지타이저에서 오는 터치 이벤트만 신뢰하므로, 그 첫 번째 실제 터치가 주입된 이벤트가 통과하도록 합니다. 한 번만 하면 호스트가 제어권을 가져옵니다.
Linux 및 Windows에서는 이러한 단축키에 대해 Cmd 대신 Ctrl을 사용하세요 (Ctrl+C, Ctrl+V 등). 클립보드는 여전히 양방향으로 동기화됩니다.
장치를 회전하면 미러도 회전하고 크기가 조정됩니다.
호스트:
장치:
| 레이아웃 | 장치 | iOS | 주입 |
|---|---|---|---|
| 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 |
ioscpy는 위 장치에서 개발 및 테스트되었습니다. rootful 장치나 모든 iOS 버전을 가지고 있지 않으므로 레이아웃별 적용 범위는 불완전합니다:
| 레이아웃 | 상태 |
|---|---|
| rootless | 빌드됨; /var/jb를 통해 roothide 유닛에서 실행됨 |
| roothide | 작동 중 (rootless .deb via /var/jb) |
| rootful | 빌드 및 레이아웃 확인됨; 런타임 테스트되지 않음 |
다른 iPhone, iOS 버전 또는 탈옥에서 ioscpy를 실행하는 경우 이 정보를 채우는 데 도움을 주세요. 특히 rootful 및 기타 iOS 버전은 테스트가 필요합니다.
ioscpy --debug의 출력host/ Rust 호스트 CLI (macOS, Linux, Windows)
device/ iOS 패키지 (Theos): 데몬, ctl, 트윅, jbcompat, 패키징
protocol/ 와이어 형식 문서, 코드와 동기화 유지
scripts/ 장치 배포, respring, 로그, 진단 도우미
docs/ 아키텍처, 탈옥 호환성, 문제 해결, 릴리스
make host-release # macOS 호스트 바이너리
make device-rootless # rootless .deb (Dopamine, palera1n-rootless, /var/jb)
make device-rootful # rootful .deb (palera1n-rootful, /)
make release # 호스트 및 두 장치 변형
Rust, Theos ($THEOS), libimobiledevice (idevice_id, iproxy), ldid, dpkg-deb 필요.
ioscpy는 동일한 책상 위의 USB 케이블을 통해 Mac, Linux(Debian, Ubuntu, Arch Linux) 장치에서 자신의 탈옥된 iPhone을 제어하기 위한 것입니다.
Linux 호스트의 경우 macOS와 동일한 외부 요구 사항: libimobiledevice 도구(iproxy, idevice_id, ideviceinfo) 및 usbmuxd.
이제 Windows에서도 실행되며, 표준 iOS USB 도구를 재사용하고 드라이버를 교체하지 않습니다. 여전히 탈옥된 iPhone만 지원합니다.