【腾讯TMQ】iOS测试利器-idb

本文介绍了iOS测试工具idb,它类似adb,提供基础操作和一键抓包等功能。idb基于python库pymobiledevice实现,支持手机重启、安装卸载应用、抓取网络包和log。文章详细阐述了idb的原理、遇到的问题及解决方案,并提供了使用教程和下载链接。
摘要由CSDN通过智能技术生成

导读

对于android的开发以及测试人员,对adb命令一定会很熟悉,adb工具可谓android测试的入门神器,安装、卸载、抓log、截图等等一应俱全。很多自动化以及性能工具都一定程度上要依赖adb工具。

刚开始接触iOS时,一直希望iOS有一套类似adb工具的东西,结果都被告知要用itools、ituns类的图形化界面工具。后来经过研究,要在iOS上实现一套类adb工具理论上是没有问题,有很多开源库可以使用,所以就做了一套idb出来(目前适用于windows平台),作为iOS的测试的基础工具,主要实现了两个功能。

1、让用户可以使用idb对iOS手机进行基础的操作,就如同使用adb操作android手机;

2、封装好了一键抓取网络包(生成pcap文件)以及log的方式,提高相应的效率。

完整idb工具下载地址(仅供交流学习):
https://share.weiyun.com/f28c0e8f6fbd240cdb3006da7fc56699

原理

iTunes是如何连接手机的?

第一步:首先通过usbmux技术,和手机建立连接。usbmux是一种可以通过usb管道(也就是一个usb端口)建立多路复用连接的系统。这是一个类TCP系统,通过这种系统,主机的端口号可以和手机中的特定端口号建立连接并通信。

第二步:连接手机的lockdown服务,对应的端口号为62708,然后通过和lockdown服务传输数据,实现相应的功能。这个服务通常只能通过usb端口建立相应的tcp连接(也就是第一步说的usbmux系统)。Lockdown服务可以用来做很多事情,安装应用、查看文件、重启等等。

通信协议从低到高如下:

1、USB协议:通过usb端口传输多个连接的数据,类似于网络中的数据链路层;

2、usbmuxd协议:打开设备上TCP端口连接,类型于网络中的运输层;

3、lockdownd协议:用于和lockdown服务传输数据,类似于网络中的应用层。

idb原理介绍

了解到iTunes的原理后,很多人便开始自己开发一些库,实现一样的功能,最有名的就是libimobiledevice是基于C语言实现的,编译配置比较麻烦,学习成本也较高。后来也出了对应的python库,即pymobiledevice。idb就是基于这个python库实现的。

idb架构设计上分为5层:

1、usbmux层:usb驱动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值