
अब आप अपने जेलब्रोकन iPhone को USB के माध्यम से मिरर और नियंत्रित कर सकते हैं
ioscpy चल रहा है (आरक्षित, लेखक इसे पूरी तरह लागू करेंगे)ioscpy को वायरलेस बनाएं (BLE, Wi-Fi) (आरक्षित, लेखक इसे पूरी तरह लागू करेंगे)एक macOS, Linux, और Windows CLI जो USB के माध्यम से जेलब्रोकन iPhone को मिरर और नियंत्रित करता है।
एक डिवाइस जुड़ा होने पर, बस इतना ही चाहिए। यह अपने आप कनेक्ट हो जाता है।
दो पक्ष हैं। 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 --record out.mp4 # record the mirrored screen while mirroring (video only)
ioscpy --debug # full diagnostics
ioscpy --version
--record PATH सत्र चलने के दौरान मिरर की गई स्क्रीन पर जो कुछ है उसे MP4 में लिखता है। फोन जो H.264 स्ट्रीम पहले से भेजता है, वह सीधे फ़ाइल में mux हो जाती है, इसलिए कुछ भी re-encode नहीं होता और रिकॉर्डिंग में प्रति फ्रेम एक buffered write का खर्च आता है; विंडो उतनी ही प्रतिक्रियाशील रहती है जितनी पहले थी। स्ट्रीम में कोई ऑडियो नहीं होता, इसलिए रिकॉर्डिंग मौन होती है। पुनः कनेक्ट होने पर ड्रॉप हुए सत्र द्वारा लिखी गई फ़ाइल को अधिलेखित करने के बजाय एक नई फ़ाइल (out-2.mp4, out-3.mp4, …) शुरू होती है।
ट्रैक सत्र शुरू होने के बाद पहले keyframe से शुरू होता है, और विंडो बंद होने पर फ़ाइल finalized होती है। रिकॉर्डिंग स्ट्रीम के अपने orientation का पालन करती है, इसलिए फोन को landscape में पकड़कर कैप्चर किया गया सत्र घुमाकर संग्रहीत होता है; QuickTime का rotate, या एक ffmpeg -display_rotation 90 -i out.mp4 -c copy पास, इसे बिना re-encode किए ठीक कर देता है।
Linux के लिए अभी कोई prebuilt नहीं है। होस्ट को सोर्स से बनाएं। डिवाइस पैकेज 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 एक अलग लक्ष्य है जो केवल बनी हुई बाइनरी को कॉपी करता है, इसलिए यह sudo के अंतर्गत बिना root के PATH पर cargo की आवश्यकता के ठीक चलता है। अपने होम में बिना sudo इंस्टॉल के लिए, make install-host PREFIX=$HOME/.local का उपयोग करें और सुनिश्चित करें कि $HOME/.local/bin आपके PATH पर है।
Linux पर H.264 डिकोडिंग openh264 सॉफ्टवेयर डिकोडर के माध्यम से काम करती है। यदि आप MJPEG पथ पसंद करते हैं तो --mjpeg पास करें।
उन Wayland कंपोज़िटर्स पर जो server-side decorations से इनकार करते हैं (GNOME/mutter), ioscpy स्वचालित रूप से X11/XWayland पर वापस चला जाता है ताकि विंडो को सामान्य titlebar मिले। इसके बजाय native Wayland पर बने रहने के लिए --wayland पास करें।
Windows के लिए अभी कोई prebuilt नहीं है। होस्ट को सोर्स से बनाएं। डिवाइस पैकेज macOS और Linux जैसा ही है, जो Sileo/Zebra रेपो से इंस्टॉल होता है।
Windows पर ioscpy उस USB टूलिंग का पुनः उपयोग करता है जो एक iOS सेटअप में पहले से होती है, और किसी भी ड्राइवर को प्रतिस्थापित नहीं करता, इसलिए Frida, objection, grapefruit, ideviceinfo, iTunes, और कोई भी अन्य usbmux टूल इसके चलने के दौरान काम करते रहते हैं।
Apple Mobile Device Support: apple.com से iTunes के साथ इंस्टॉल होता है (Apple-वेबसाइट बिल्ड लें, Microsoft Store वाला नहीं), या स्टैंडअलोन 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 का assembler (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 केवल उन्हीं टच इवेंट्स पर भरोसा करता है जो असली digitizer से आते हैं, इसलिए वह पहला असली टैप ही है जो इंजेक्ट किए गए टैप्स को गुजरने देता है। आप इसे एक बार करते हैं, फिर होस्ट संभाल लेता है।
Linux और Windows पर, इन शॉर्टकट्स के लिए Cmd के स्थान पर Ctrl का उपयोग करें (Ctrl+C, Ctrl+V, इत्यादि); क्लिपबोर्ड अभी भी दोनों तरफ़ सिंक होता है।
फोन को घुमाने से मिरर घूमता और आकार बदलता है।