环境准备

安装 OCaml

brew install opam

安装 gandalf

wget https://github.com/onlinemediagroup/ocaml-usbmux/releases/download/v1.3.1/gandalf_darwin_10_11_x86_64 -P /usr/loca/bin -O gandalf

授权

sudo chmod +x /usr/local/bin/gandalf

修复

获取当前设备的 uuid,然后创建一个文本文件.内容如下.

[{"udid":"设备uuid",
  "name":"设备名", "forwarding": [{"local_port":2000, "device_port":22},
                               {"local_port":3000, "device_port":1122}]
                               }]

然后执行端口转发(不要关闭这个进程,使他持续运行)

gandalf -m 你创建的文件

打开一个新的终端端口,连接本地端口.

ssh root@localhost -p 2000

输入密码进入后,修改root密码和mobie用户密码.

然后切换到LaunchDaemons目录.

cd /Library/LaunchDaemons

创建一个ssh10022.plist文件.

cat <<EOF > ssh10022.plist

然后输入以下内容.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>SSH port 10022</string>
    <key>Program</key>
    <string>/usr/local/bin/dropbear</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/dropbear</string>
        <string>-F</string>
        <string>-R</string>
        <string>-p</string>
        <string>10022</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

control + D 进行 EOF 操作.

对刚才创建的文件进行授权

chmod go-w /var/mobile

加载这个配置文件

launchctl load /Library/LaunchDaemons/ssh10022.plist

这时候,ssh已经可以正常使用了.