美文网首页
iOS debugserver 部署

iOS debugserver 部署

作者: Jameszj | 来源:发表于2016-09-16 17:02 被阅读0次
    操作环境:
    * 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.

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

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

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

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

    <!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>
    

    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=<pid>
    

    或者:

    debugserver *:12345 --attach=<process name>
    

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

    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 部署

          本文链接:https://www.haomeiwen.com/subject/gqkiettx.html