更新:最新版的usbmuxd使用方法有变,请参考这个帖子。新版usbmuxd中用到iproxy,在我的电脑上使用时,貌似不支持多台设备同时转发,而旧版没有此问题。若要沿用旧版usbmuxd,请继续阅读
五一放假,出门在外,有时候没有WiFi,没法通过无线ssh到iOS中调程序,怎么办呢?好在大神Nikias Bassen(即@pimskeks)写了一个可以把本地OSX/Windows端口转发到远程iOS端口的工具usbmuxd,使我们能够通过USB连接线ssh到iOS中,大大增加了ssh连接的速度,也方便了那些没有WiFi的朋友。下面我们就简单介绍一下怎么使用神器usbmuxd。(注:以下操作在OSX中进行,Windows用户请自行安装python环境)
下载usbmuxd
从这里下载usbmuxd,解压到本地。我们要用到的只有python-client目录下的tcprelay.py和usbmux.py两个文件,把它们放到同一个目录下,如笔者的
/Users/snakeninny/Code/USBSSH/
注:官网已不再提供usbmuxd 1.0.8版本的下载,如果你还想沿用1.0.8版,请下载USBSSH.zip (9.3 KB)
使用usbmuxd
usbmuxd的用法比较简单,在Terminal中输入
/Users/snakeninny/Code/USBSSH/tcprelay.py -t 远程iOS上的端口:本地OSX/Windows上的端口
即可把本地OSX/Windows上的端口转发到远程iOS上的端口,如
/Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222
可把本地的2222端口转发到iOS上的22端口,那么直接
ssh root@localhost -p 2222
即可ssh到iOS中。
使用场景举例
完全脱离WiFi,使用USB连接到iOS,用lldb调试SpringBoard。
i) 把本地2222端口转发到iOS的22端口
/Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222
ii) ssh过去并用debugserver attach到SpringBoard
ssh root@localhost -p 2222
debugserver *:1234 -a "SpringBoard"
iii) 把本地1234端口转发到iOS的1234端口
/Users/snakeninny/Code/USBSSH/tcprelay.py -t 1234:1234
iv) 用lldb开始调试
lldb
process connect connect://localhost:1234