usbmuxd: 用類似 ADB 的方式來存取 iPhone

開發 Android 的時候,我們可以透過 ADB (Android Debug Bridge) 進入 Android shell 來除錯。
而在 iPhone 通常只能透過 OpenSSH 來達到這件事,雖然也沒有多麻煩,但是網路多少還是會造成延遲。

只要透過 usbmuxd 就可以解決這個問題了!

  1. 下載 libusb、CMake、usbmuxd (版本依該網站為主)
  2. 在 usbmuxd 底下的 python-client 資料夾中有個 tcprelay.py,將權限更改為可執行
  3. $ ./tcprelay.py -t 22:2222 ,其中 -t 的參數是透過多執行緒處理多重連線,而 22 是你 iPhone 預設的 ssh port,而 2222 則是你在本地端提供的一個 port
  4. 接著這個 python client 就會透過 libusb 的幫忙取得 USB 裝置資訊,透過 python 實現 port forwarding
  5. $ ssh root@localhost -p 2222,搞定!(雖然你還是透過 ssh 指定,但實際上卻是透過本機接聽連線到 USB 裝置上)