4.6 usbmuxd

很多朋友是通过WiFi连接使用SSH服务的,因为无线网络的不稳定性及传输速度的限制,在复制文件或用LLDB远程调试时,iOS的响应很慢,效率不高。iOS越狱社区的知名人士Nikias Bassen(@pimskeks)开发了一款可以把本地OSX/Windows端口转发到远程iOS端口的工具usbmuxd,使我们能够通过USB连接线ssh到iOS中,大大增加了ssh连接的速度,也方便了那些没有WiFi的朋友。它的用法如下,比较简单。

(1)下载并配置usbmuxd

http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz 下载usbmuxd,解压到本地。我们用到的只有python-client目录下的tcprelay.py和usbmux.py两个文件,把它们放到同一个目录下,比如,笔者的是:


/Users/snakeninny/Code/USBSSH/

(2)使用usbmuxd转发端口

usbmuxd的用法比较简单,在Terminal中输入如下命令:


/Users/snakeninny/Code/USBSSH/tcprelay.py -t 远程iOS上的端口:本地OSX/Windows上的端口

即可把本地OSX/Windows上的端口转发到远程iOS上的端口。

下面是使用场景举例。

在没有WiFi的情况下,使用USB连接到iOS,用lldb调试SpringBoard。

1)把本地2222端口转发到iOS的22端口,命令如下:


snakeninnysiMac:~ snakeninny$ /Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222
Forwarding local port 2222 to remote port 22

2)ssh到iOS中,并用debugserver附加SpringBoard,命令如下:


snakeninnysiMac:~ snakeninny$ ssh root@localhost -p 2222
FunMaker-5:~ root# debugserver *:1234 -a "SpringBoard"

3)把本地1234端口转发到iOS的1234端口,命令如下:


snakeninnysiMac:~ snakeninny$ /Users/snakeninny/Code/USBSSH/tcprelay.py -t 1234:1234
Forwarding local port 1234 to remote port 1234

4)用lldb开始调试,命令如下:


snakeninnysiMac:~ snakeninny$ /Applications/OldXcode.app/Contents/Developer/usr/bin/lldb 
(lldb) process connect connect://localhost:1234

使用usbmuxd能极大提升ssh的速度,用LLDB远程连接debugserver的时间被缩短至15秒以内,强烈建议大家把usbmuxd作为ssh连接的首选方案。