设备ARM型号一览表:
debugserver运行在iOS上,位置是/Developer/usr/bin,
但是,默认手机上默认是没有的
只有手机第一次连接到Xcode,通过Xcode--->Window--->Devices时,
debugserver才会被安装到iOS上的/Developer/usr/bin目录里面
但是,此时的debugserver还是不可以使用的
通过查看《iOS_设备ARM型号一览表》得知,iPhone4S 是 armv7
第1步,将iOS上面,无法使用的debugserver,通过iFunbox复制到
/Users/beyond/破解工具/debugserver
第2步,使用lipo命令减肥
lipo -thin armv7 /Users/beyond/破解工具/debugserver -output /Users/beyond/破解工具/debugserver
第3步,添加task_for_pid权限
下载http://iosre.com/ent.xml 到 mac上 /Users/beyond/目录下(建议与瘦身后的debugserver放于同一目录),然后进到ent.xml所在目录后,运行
/opt/theos/bin/ldid -Sent.xml debugserver
注意 -S选项与ent.xml间无空隔
ent内容如下:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
<key>run-unsigned-code</key>
<true/>
</dict>
</plist>
第4步,将处理后的debugserver拷回iOS /usr/bin,并添加执行权限 (必须是拷贝到iOS设备后,再添加执行权限!!!)
chmod +x /usr/bin/debugserver
因为/Developer/usr/bin目录是只读的文件系统,不可写!!!
而且/usr/bin下的所有命令 不需要输入全路径,就可执行
debugserver -x backboard IP:port /ios/path/to/appExeFile
上面的命令可以启动app,并开启port端口,等待来自IP的mac上的lldb接入
debugserver IP:port -a "ProcessName"
上面的命令会附加进程,同样开启port端口,等待来自IP的mac上的lldb接入
实例:
debugserver -x backboard *:1234 /Applications/MobileSMS.app/MobileSMS
上面的命令会启动MobileSMS,并开启手机上1234的端口,等待来自任意IP地址的lldb接入
实例:
debugserver 192.168.1.6:1234 -a "MobileSMS"
会附加MobileSMS (前提是app已经打开运行了),并开启iOS上的1234端口,等待来自192.168.1.6的mac的lldb接入
第6步,新开一窗口,启动lldb,进行connect
终端输入mac上lldb所在路径:
/Applications/Xcode.app/Contents/Developer/usr/bin/lldb
进行连接:
process connect connect://iOSIP:1234
image list -o -f