关于开发ios instruments性能工具

 1、libimobiledevice原理是破解iTunes和iPhone通讯后,实现了该协议。iTools也是用这玩意;
    1.1、通过使用make命令运行makefile文件,从而libimobiledevice整个工程编译成多个可执行文件,
        拿到设备(uuid,设备名称,设备字符模型,cpu架构,网卡信息,系统版本等一切硬件信息)、对整个设备进行备份,获取时间,截屏,
        获取当前设备的bundleid,app列表,安装与卸载ipa包;
    1.2、libimobiledevice提供丰富的api,需要大量的时间研究,才可以运用;
    1.3、ios-deploy也能拿到设备列表,上传,下载,app运行中的log信息,lldb诊断,安装与卸载ipa包,
        通过usb连接可以拉取根据bundleid指定的app;
    1.4、可以从ios助手开发类似于pp助手入手,里面提供很多gamebench用到的服务,和相应的接口;
 2、通过class-dump逆向instrument生成相应的头文件,得到相关类和函数,从而得到github开源的TraceUtility代码
    通过解析instrument工具保存.trace文件,通过TraceUtility工程执行.trace文件能够读取到cpu使用率,流量,fps,rss等性能数据,
    其中发现了"com.apple.GPUTools.MobileService"服务,与gamebench中使用相同,目前自己尝试通过instrument 模板保存.trace文件,
    由于instrument api经常变动,尚未成功,今天发现的,明天还需要再次尝试;
 3、运行dtxmsg 通过ida事件调度器拦截instrument server 与 macosx的通信消息,最终由于作者更新IDA SDK 7.2版本,没有而失败;
 4、目前发现的一下服务可能会拿到cpu使用率,流量,fps,rss,gpu,这些服务可以在以javascript写的appium自动化测试中
    目前appium可以运行,但还未去研究appium开源的代码:
    4.1、"com.apple.instruments.server.services.graphics.opengl";    gpu
    4.2、"com.apple.instruments.server.services.activity";           cpu使用率
    4.3、"com.apple.instruments.server.services.sysmontap";          CPU_INST_NAME_11
    4.4、"com.apple.instruments.server.services.power";              电量
    4.5、"com.apple.instruments.server.services.wireless";           WIRLESS_SERV_NAME
    4.6、"com.apple.instruments.server.services.deviceinfo";         DEVICEINFOSERV
    4.7、"com.apple.instruments.UIAutomation";                       UIAUTOMATIONSERV
 5、相当重要的动态库:window上使用iTunesMobileDevice.dll,Mac上使用mobileDevice.framework框架
    通过WiFi或者USB连接,进行iOS设备与MAC OSX APP进行通信;
     5.1、libimobiledevice (在GNU / Linux上提供相同的功能)
     5.2、mobiledevice (命令行实用程序,用于与MobileDevice Framework交互)
     5.3、SDMMobileDevice (用C编写的OS X框架可以与Apple的私有框架MobileDevice.framework互换使用)
     5.4、MobileDeviceAccess (与上面类似,但用Objective-C编写)
     5.5、MobileDevice.h (旧的逆向工程头,用于与MobileDevice库连接,ios-deploy使用此头文件)
6、在libimobiledevice和gamebench中发现的服务(苹果私有服务:com.apple.{somethingelse})
     com.apple.afc                          访问文件系统.
     com.apple.mobile.diagnostics_relay     从设备中请求iOS诊断信息
     com.apple.springboardservices          管理SpringBoard图标并检索图标图像。
     com.apple.file_relay                   检索压缩的CPIO存档。
     om.apple.mobile.installation_proxy     管理设备上的应用程序。
     com.apple.mobile.mobile_image_mounter  在设备上安装开发者/调试磁盘映像。
     com.apple.mobile.screenshotr           从设备中检索屏幕截图。
     com.apple.syslog_relay                 从设备捕获syslog输出。
     com.apple.debugserver                  与设备上的debugserver通信。
     com.apple.house_arrest                 访问应用程序文件夹及其内容。
     com.apple.webinspector                 WebKit远程调试
     com.apple.mobile.notification_proxy    观察并发布通知.
     com.apple.mobilesync                   将数据类与设备和计算机同步。
     com.apple.mobilebackup2                备份和恢复所有设备数据(仅限mobilebackup2,iOS4 +)
     com.apple.mobileactivationd            处理设备激活和停用。
     com.apple.misagent                     管理配置文件。
     com.apple.mobile.heartbeat             将“心跳”发送到设备以允许通过网络进行服务连接。
     com.apple.mobile.lockdownd             锁定每次访问,这个服务相当重要。
 
7、需要很多逆向的知识,这方面资料非常少,做这块时,无论国内外,翻遍了google,baidu都没太多合适的资料;

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值