
これで、脱獄したiPhoneをUSB経由でミラーリングして操作できます。
ioscpy が動作中であることをデバイスに通知する(予約済み、作者が完全に実装予定)ioscpy をワイヤレス化(BLE、Wi-Fi)(予約済み、作者が完全に実装予定)USB 経由で脱獄済み iPhone をミラーリングおよび制御する macOS、Linux、Windows 対応の CLI です。
デバイスを1台接続するだけで十分です。自動的に接続されます。
2つのパーツがあります。Mac アプリがミラーを実行し、iPhone パッケージが電話の制御を可能にします。両方をインストールしてください。
Mac では、Homebrew を使います:
brew tap lautarovculic/ioscpy # the Mac app
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> # 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
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 # should print the UDID with the phone attached
ホストを自分のユーザーとしてビルドしてからインストールしてください:
make host-release
sudo make install-host # installs to /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 に同梱されているもの(Microsoft Store 版ではなく Apple サイト版を入手)、またはスタンドアロンの AMDS パッケージでインストールされます。これにより USB ドライバと usbmuxd が提供されます。iTunes で iPhone が認識されている必要があります。
libimobiledevice-win32: iproxy.exe、idevice_id.exe、ideviceinfo.exe を提供します。Scoop でインストールします:
scoop install libimobiledevice
または MSYS2 の場合:
pacman -S mingw-w64-x86_64-libimobiledevice
3つの .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 # confirms the device is seen
.\host\target\release\ioscpy.exe # opens the mirror window
H.264 ではなく MJPEG にしたい場合は --mjpeg を指定してください。openh264 のビルドに失敗した場合は、nasm が PATH にあることを確認してください。
respring 後や新しい接続後は、ホストから操作する前に、電話の画面を一度物理的にタップしてください。iOS は実際のデジタイザーから のタッチイベントのみを信頼するため、その最初の実際のタップによって、注入されたタッチが通るようになります。一度行えば、 その後はホストが操作を引き継ぎます。
Linux と Windows では、これらのショートカットに Cmd の代わりに Ctrl を使用します(Ctrl+C、Ctrl+V など)。クリップボードは引き続き双方向に同期されます。
電話を回転させると、ミラーも回転してサイズが変更されます。
ホスト:
デバイス:
ioscpy は上記のデバイスで開発・テストされています。rootful デバイスやすべての iOS バージョンを手元に用意しているわけではないため、レイアウトごとの対応状況は不完全です:
| レイアウト | 状態 |
|---|---|
| rootless | ビルド可能; /var/jb 経由で roothide 機でも動作 |
| roothide | 動作確認済み(/var/jb 経由の rootless .deb) |
| rootful | ビルドとレイアウトは検証済み。実行時は未テスト |
異なる iPhone、iOS バージョン、脱獄環境で ioscpy を実行した場合は、この表の記入にご協力ください。特に rootful やその他の iOS バージョンのテストが必要です。
ioscpy --debug の出力host/ 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
必要なもの: 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 のみです。
| レイアウト | デバイス | 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 |