iOS debugserver 部署

操作环境:
* iPad mini 2, iOS 9.2 [Jailbroken]
* iMac, OS X EI Capitan
* Xcode 7.3.1
* usbmuxd 1.0.6 [解压后放在Desktop目录下]

1. 定制debugServer

  • 导出debugserver.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/9.2/DeveloperDiskImage.dmg 找到 DeveloperDiskImage.dmg.

iOS debugserver 部署_第1张图片

双击DeveloperDiskImage.dmg 打开它. 在目录/Volumes/DeveloperDiskImage/usr/bin/下找到debugserver.

iOS debugserver 部署_第2张图片

debugservercopy到Desktop目录下, 命令如下:

cp /Volumes/DeveloperDiskImage/usr/bin/debugserver ~/Desktop/debugserver
  • debugserver签名.

需要用到内容如下的entitlement.xml, 将其保存到Desktop目录下.

 
 
   
    com.apple.springboard.debugapplications 
     
    get-task-allow 
     
    task_for_pid-allow 
     
    run-unsigned-code 
     
   

codesigndebugserver签名, 命令如下:

cd ~/Desktop
codesign -s - --entitlements ./entitlement.xml -f debugserver 

2. 安装debugserverARMDisassembler.framework

将签名后的debugserver拷贝到iDevice/usr/bin目录下, 将ARMDisassembler.framework拷贝到iDevice目录/System/Library/PrivateFrameworks下.

新开一个Terminal tab,执行:

python usbmuxd-1.0.6/python-client/tcprelay.py 22:2222

在原Terminal tab里执行:

scp -P 2222 debugserver root@localhost:/usr/bin/
scp -r -P 2222 /Volumes/DeveloperDiskImage/Library/PrivateFrameworks/ARMDisassembler.framework root@localhost:/System/Library/PrivateFrameworks/

3. 调试应用

  • iOS上用debugserverattach 进程或启动应用

Attach 进程, 命令如下:

debugserver *:12345 --attach=

或者:

debugserver *:12345 --attach=

启动应用作为调试进程, 命令如下:

debugserver *:12345 /path/to/app
  • OS X 上用LLDB远程调试

新开一个Terminal tab执行:

python usbmuxd-1.0.6/python-client/tcprelay.py 12345:12345

再新开一个Terminal tab运行lldb, 输入以下lldb命令:

process connect connect://localhost:12345

稍等片刻,待连上之后,我们就可以开始调试了.

你可能感兴趣的:(iOS debugserver 部署)