CN104079453B - 调试设备的枚举方法和装置 - Google Patents
调试设备的枚举方法和装置 Download PDFInfo
- Publication number
- CN104079453B CN104079453B CN201410320120.XA CN201410320120A CN104079453B CN 104079453 B CN104079453 B CN 104079453B CN 201410320120 A CN201410320120 A CN 201410320120A CN 104079453 B CN104079453 B CN 104079453B
- Authority
- CN
- China
- Prior art keywords
- tested end
- information
- command
- commissioning device
- tested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Telephone Function (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种调试设备的枚举方法和装置。其中,该调试设备的枚举方法包括:在测试端与被测试端连接时,被测试端接收来自测试端的指令信息,其中,指令信息为指示被测试端枚举被测试端中调试设备的信息;被测试端根据指令信息生成加载命令,其中,加载命令为加载调试设备的命令;以及被测试端根据加载命令驱动调试设备以枚举调试设备。通过本发明,解决了现有技术中在终端不能完全启动时,无法枚举终端中的调试设备的问题,达到了在终端处于不能完全启动的状态时,也能枚举终端设备中的调试设备。
Description
技术领域
本发明涉及产品开发以及测试领域,具体而言,涉及一种调试设备的枚举方法和装置。
背景技术
在终端出现故障时,通常需要对终端进行调试。例如,对安卓手机的故障进行调试。在对终端进行测试时,一般会查看终端中的调试设备,并通过调试设备对终端进行测试。例如,安卓***中的调试桥(Android debug bridge,简称为ADB),通过调试桥抓取log、获取手机信息、文件操作等,通过获取这些终端的文件来查看终端的故障,例如,查看手机是否被root过。无论在终端的开发过程中,还是在检测过程中,都需要通过调试设备对终端进行检测。需求指出的是,ADB作为一个调试设备,在终端初始状态下一般不会枚举ADB设备,售后或是想打开ADB的用户可以通过***界面对***进行相应操作来枚举出ADB设备,比如在安卓***的设置界面中勾选【开发者选项】中的【USB调试】来打开ADB设备。但是,如果因为一些异常,比如用户root过的手机,做过一些特殊的操作,或是硬件故障导致安卓***不能启动,那么就没有方法在界面上去操作来枚举ADB设备,而此时又需要用ADB来分析问题。目前遇到这种问题唯一的方法就是重新下载***,但是这样会导致问题的现场被破坏,从而使导致无法获知导致***异常的原因。
针对现有技术中在终端不能完全启动时,无法枚举终端中的调试设备的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种调试设备的枚举方法和装置,以解决现有技术中在终端不能完全启动时,无法枚举终端中的调试设备的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种调试设备的枚举方法。根据本发明的调试设备的枚举方法包括:在测试端与被测试端连接时,所述被测试端接收来自所述测试端的指令信息,其中,所述指令信息为指示所述被测试端枚举所述被测试端中调试设备的信息;所述被测试端根据所述指令信息生成加载命令,其中,所述加载命令为加载所述调试设备的命令;以及所述被测试端根据所述加载命令驱动所述调试设备以枚举所述调试设备。
进一步地,所述被测试端根据所述指令信息生成加载命令包括:所述被测试端的操作***中的内核空间监听所述指令信息;在所述内核空间监听到所述指令信息之后,向所述操作***中的用户空间发送所述指令信息;以及所述用户空间根据所述指令信息生成所述加载命令,其中,所述用户空间将所述加载命令发送给所述内核空间。
进一步地,所述被测试端根据所述加载命令驱动所述调试设备以枚举所述调试设备包括:所述内核空间接收所述加载命令;所述内核空间根据所述加载命令驱动所述调试设备,其中,在驱动所述调试设备之后,所述被测试端枚举所述调试设备。
进一步地,在测试端与被测试端连接时,所述被测试端接收来自所述测试端的指令信息包括:通过USB连接所述测试端与所述被测试端;检测所述被测试端中是否有USB设备;如果检测到所述被测试端中具有USB设备,则接收预定指令信息,其中,所述预定指令信息的格式为所述测试端和所述被测试端之间的通信协议的格式,所述预定指令信息为指示所述被测试端枚举所述USB设备的指令。
进一步地,如果检测到所述被测试端中具有USB设备,则接收预定指令信息包括:判断检测到的USB设备是否为大容量存储器;以及如果检测到的USB设备为所述大容量存储器,则接收来自所述测试端的SCSI命令,其中,所述SCSI命令用于指示所述被测试端枚举所述USB设备。
进一步地,如果检测到所述被测试端中具有USB设备,则接收预定指令信息包括:接收通过索引命令发送的USB请求包,其中,所述USB请求包用于指示所述被测试端枚举所述USB设备。
进一步地,所述被测试端接收来自所述测试端的指令信息包括:所述被测试端检测按键编码信息、预定动作信息或者预定图像信息;以及当检测到所述按键编码信息、所述预定动作信息或者所述预定图像信息之后,解析检测到的信息携带的指令信息。
进一步地,所述被测试端接收来自所述测试端的指令信息包括:所述被测试端通过无线通道接收来自所述测试端的所述指令信息。
为了实现上述目的,根据本发明的另一方面,提供了一种调试设备的枚举装置。根据本发明的调试设备的枚举装置包括:接收单元,用于在测试端与被测试端连接时,接收来自所述测试端的指令信息,其中,所述指令信息为指示所述被测试端枚举所述被测试端中调试设备的信息;生成单元,用于根据所述指令信息生成加载命令,其中,所述加载命令为加载所述调试设备的命令;以及驱动单元,用于根据所述加载命令驱动所述调试设备以枚举所述调试设备。
进一步地,所述生成单元包括:监听模块,用于通过所述被测试端的操作***中的内核空间监听所述指令信息;发送模块,用于在所述内核空间监听到所述指令信息之后,向所述操作***中的用户空间发送所述指令信息;以及生成模块,用于通过所述用户空间根据所述指令信息生成所述加载命令,其中,所述用户空间将所述加载命令发送给所述内核空间。
进一步地,所述驱动单元包括:第一接收模块,用于通过所述内核空间接收所述加载命令;驱动模块,用于通过所述内核空间根据所述加载命令驱动所述调试设备,其中,在驱动所述调试设备之后,所述被测试端枚举所述调试设备。
进一步地,所述接收单元包括:连接模块,用于通过USB连接所述测试端与所述被测试端;检测模块,用于检测所述被测试端中是否有USB设备;第二接收模块,用于在检测到所述被测试端中具有USB设备时,接收预定指令信息,其中,所述预定指令信息的格式为所述测试端和所述被测试端之间的通信协议的格式,所述预定指令信息为指示所述被测试端枚举所述USB设备的指令。
通过本发明,采用在测试端与被测试端连接时,被测试端接收来自测试端的指令信息,其中,指令信息为指示被测试端枚举被测试端中调试设备的信息;被测试端根据指令信息生成加载命令,其中,加载命令为加载调试设备的命令;以及被测试端根据加载命令驱动调试设备以枚举调试设备的方法,解决了现有技术中在终端不能启动时,无法枚举终端中的调试设备的问题,进而达到了在终端不能完全启动时,枚举终端中的调试设备的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的调试设备的枚举方法的流程图;
图2是根据本发明优选实施例的调试设备的枚举方法的流程图;
图3是根据本发明又一优选实施例的调试设备的枚举方法的流程图;
图4是根据本发明实施例的调试设备的枚举装置的示意图;以及
图5是根据本发明优选实施例的调试设备的枚举装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
名词解释:
ADB:即Android debug bridge,起到调试桥的作用。通过adb可以调试安卓程序,即是一种检测工具。ADB是安卓***中的一个工具,用这个工具可以直接操作管理安卓模拟器或者真实的安卓设备,它的主要功能有:运行设备的命令行,管理模拟器或设备的端口映射,计算机和设备之间上传/下载文件,将本地apk软件安装至模拟器或android设备等。
内核空间:在操作***中,部分核心软件独立于普通应用程序,运行在较高的特权级别上,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,即为内核空间。
用户空间:在操作***中,运行在用户空间的应用程序只能看到允许它们使用的部分***资源,并且不能使用某些特定的***功能,也不能直接访问内核空间和硬件设备。将用户空间和内核空间置于这种非对称访问机制下有很好的安全性,能够有效防止恶意用户的窥探。
MTP:media transfer protocol,媒体传输协议,是基于PTP(picture transferprotocol)协议的扩展,主要用于传输媒体文件。
RNDIS:remote network driver interface specification,即remote NDIS,远程网络驱动接口规范。基于USB实现RNDIS实际上就是TCP/IP over USB,就是USB设备上运行TCP/IP,让USB作为一块网卡。
本发明实施例提供了一种调试设备的枚举方法。
安卓平台采用linux操作***做内核,很多情况下,虽然安卓设备不能开机,但是linux内核还是可以启动的,而安卓的USB驱动部分基本采用linux中USB驱动结构,所以只要Linux被启动,那么其中的USB驱动也是可以工作的,基于这样的情况,在安卓设备不开机,也可以枚举出调试设备,即在终端不能完全启动时,也能枚举终端中的调试设备。
图1是根据本发明实施例的调试设备的枚举方法的流程图。如图所示,该调试设备的枚举方法包括如下步骤:
步骤S102,在测试端与被测试端连接时,被测试端接收来自测试端的指令信息,其中,指令信息为指示被测试端枚举被测试端中调试设备的信息。
将需要被测试的终端与进行测试的电脑连接,即测试端与被测试端相连接,通过测试端查看被测试端中是否有调试设备被枚举,如果能够查看那到被测试端中具有调试设备,但是该调试设备无法被枚举,则测试端向被测试端发送指令信息,相应地,被测试端接收来自测试端的指令信息。
例如,测试端为windows***的电脑,被测试端为安卓***的手机,在电脑与手机处于连接状态时,通过windows***中的设备管理器可以查看手机中是否有调试设备被枚举,如果查看到手机中具有能够被枚举的调试设备,则向手机发送用于指示手机枚举该调试设备的信息,即向手机发送指令信息。
步骤S104,被测试端根据指令信息生成加载命令,其中,加载命令为加载调试设备的命令。
被测试端接收指令信息,并根据指令信息生成加载命令,以通过加载命令进行调试设备的加载,最终使得调试设备被枚举。
步骤S106,被测试端根据加载命令驱动调试设备以枚举调试设备。
被测试端根据加载命令驱动调试设备,从而使得调试设备能够被枚举,即测试端可以对枚举出的调试设备进行操作。例如,在枚举出调试设备之后,测试端可以通过调试设备完成抓取log、获取手机信息和获取操作文件等动作,从而对被测试端的异常进行分析。
通过上述实施例,在被测试端无法开机时,只要在测试端与被测试端连接时,在测试端能够查看到该被测试端能够被枚举的调试设备,即可以通过接收来自测试端的指令信息,指示被测试端驱动调试设备,以使调试设备被枚举,从而在被测试端因故障导致无法开机时,也能够枚举被测试端中的调试设备,进而通过枚举出的调试设备对被测试端的问题进行分析和解决。
图2是根据本发明优选实施例的调试设备的枚举方法的流程图。如图所示,该调试设备的枚举方法包括如下步骤:
步骤S202,在测试端与被测试端连接时,被测试端接收来自测试端的指令信息,其中,指令信息为指示被测试端枚举被测试端中调试设备的信息。
步骤S204,被测试端的操作***中的内核空间监听指令信息。
被测试端的操作***中的内核空间监听指令信息,即通过内核空间检测是否有来自测试端的指令信息。
步骤S206,在内核空间监听到指令信息之后,向操作***中的用户空间发送指令信息。
在内核空间监听到指令信息之后,向用户空间发送指令信息。例如,在安卓***中,利用netlink套接字作为用户空间和内核空间的通信接口,通过netlink套接字向用户空间发送指令信息。
步骤S208,用户空间根据指令信息生成加载命令,其中,用户空间将加载命令发送给内核空间。
用户空间根据指令信息生成加载命令,用户空间将加载命令发送给内核空间。
步骤S210,被测试端根据加载命令驱动调试设备以枚举调试设备。
上述步骤S202和步骤S210分别与图1所示的步骤S102和步骤S106相同,此处不再赘述。
通过上述实施例,通过内核空间接收指令信息,并将指令信息发送给用户空间,用户空间根据指令信息生成加载命令,并将生成的加载命令发送给内核空间,通过内核空间驱动调试设备,使得调试设备被枚举。由于内核空间和用户空间分别用来处理较高权限的应用程序和普通应用程序,则通过内核空间可以接收到来自测试端的指令信息,并使得用户空间生成加载命令,再将生成的加载命令发送给内核空间,从而既保证被测试端能够及时接收到指令信息,还能够在保证被测试端安全的情况下枚举调试设备。
进一步地,被测试端根据加载命令驱动调试设备以枚举调试设备包括:内核空间接收加载命令。内核空间根据加载命令驱动调试设备,其中,在驱动调试设备之后,被测试端枚举调试设备。
内核空间接收到来自用户空间的加载命令之后,根据加载命令驱动调试设备,在调试设备被驱动后,被测试端枚举该调试设备。例如,在内核空间根据加载命令驱动调试设备,以使得调试设备能够被枚举。
优选地,为了便于枚举调试设备,在测试端与被测试端连接时,被测试端接收来自测试端的指令信息包括:通过USB连接测试端与被测试端。检测被测试端中是否有USB设备。如果检测到被测试端中具有USB设备,则接收预定指令信息,其中,预定指令信息的格式为测试端和被测试端之间的通信协议的格式,预定指令信息为指示被测试端枚举USB设备的指令。
在通过USB连接测试端与被测试端之后,可以通过以下两种方式枚举调试设备。
方式一:
在被测试端无法开机时,如果检测到被测试端中具有USB设备,则接收预定指令信息包括:判断检测到的USB设备是否为大容量存储器。如果检测到的USB设备为大容量存储器,则接收来自测试端的SCSI命令,其中,SCSI命令用于指示被测试端枚举USB设备。
大容量存储器即mass storage设备,在测试端与被测试端通过USB连接之后,如果确定被测试端中具有USB设备之后,判断该USB设备是否为大容量存储器,并接收来自测试端的SCSI命令。其中,为了使得被测试端能够识别出指令信息,该SCSI命令的命令格式与常用的SCSI的命令格式相同,但是命令的内容与现有的SCSI命令不同,由于被测试端枚举USB设备的SCSI命令的格式与现有SCSI命令相同,而内容不同于现有的SCSI命令,能够避免该被测试端接收到的SCSI命令与其他SCSI命令区分,以免混淆。
方式二:
在被测试端无法开机,且该被测试端不能枚举mass storage时,就不能利用方式一进行调试设备的枚举了,那么,如果检测到被测试端中具有USB设备,则接收预定指令信息包括:判断检测到的USB设备是否为媒体传输设备或远程网络驱动接口设备。以及如果检测到的USB设备为媒体传输设备或远程网络驱动接口设备及其他任意一种USB设备,则接收通过索引命令发送的USB请求包,其中,USB请求包用于指示被测试端枚举USB设备。
被检测端中负责进行电脑和终端之间进行文件操作的设备不是mass storage时,通过检测端检测这些进行文件操作的文件来枚举USB设备。例如,负责进行电脑和中断之间进行文件操作的设备为媒体传输设备或远程网络驱动接口设备。其中,媒体传输设备为MTP,远程网络驱动接口设备为rndis,判断监测到的USB设备为MTP、Rndis或其它USB设备时,接收通过索引命令发送的USB请求包,其中,该USB请求包用来指示被测试端枚举USB设备。其中,索引命令为电脑中的命令。
在上述实施例中,被测试端通过接收指令信息来驱动调试设备,从而使得调试设备能够在被测试端处于没有启动的状态时,也能够枚举出调试设备。从而解决了现有技术中在终端不能启动时,无法枚举终端中的调试设备的问题,进而达到了在终端不能启动时,也能枚举出终端中的调试设备,再利用调试设备对终端继续调试和问题分析。
优选地,在上述实施例中,被测试端接收来自测试端的指令信息包括:被测试端检测按键编码信息、预定动作信息或者预定图像信息。以及当检测到按键编码信息、预定动作信息或者预定图像信息之后,解析检测到的信息携带的指令信息。
被测试端除了通过接收SCSI命令和USB请求包来驱动调试设备以外,还可以通过检测按键编码信息、预定动作信息或者预定图像信息等来获取指令信息,通过对这些检测到的信息进行解析即可得到指令信息,并根据指令信息驱动调试设备,从而实现了在被测试端未启动的状态下也能枚举调试设备。
按键编码信息可以通过实体键盘、虚拟键盘甚至外接键盘来接收,预定动作可以通过被测试端中设置的位移传感器或者重力传感器来接收,预定图像信息可以通过触摸屏幕绘制预定图像来接收。接收到的案件编码信息可以是一串数字、字母或者二者的组合,还可以是长时间按键和短时间按键随即组合,接收到的预定动作信息可以是用手机划8字型,接收到的预定图像信息可以是圆形、方形或者符合一定规则的线条。
通过上述实施例可知,被测试端接收指令信息的方式并不局限于SCSI命令和USB请求包,还可以是按键编码信息、预定动作信息和预定图像信息等,需要说明的是,在被测试端未启动的情况下,被测试端的传感器等还能工作,则可以采用传感器对应的操作方式接收指令信息。
优选地,被测试端接收来自测试端的指令信息包括:被测试端通过无线通道的方式接收来自测试端的指令信息。例如,被测试端通过wifi、蓝牙通道或者其它无线通道中的任意一种方式接收来自测试端的指令信息。
在测试端和被测试端连接时,可以通过wifi、蓝牙通道或者其它无线通道中的任意一种方式接收来自测试端的指令信息,并不限于通过USB接收来自测试端的指令信息。而通过wifi等接收指令信息之后生成加载命令等的数据处理手段与通过USB接收指令信息后的数据处理手段相同,因此,通过其他方式连接测试端和被测试端,以及在测试端和被测试端传输数据的方式都可以与USB的连接方式相同,那么在USB的接口损坏时可以采用其他连接方式进行数据的传输和处理,从而保证在被测试端无法启动时,设置某些连接接口无法正常工作时,也能够枚举被测试端中的调试设备,进而通过枚举出的调试设备对被测试端的问题进行分析和解决。
以下结合图3对本发明实施例的调试设备的枚举方法进行说明。
测试端的应用程序发送指令信息,被测试端的内核空间接收指令信息,并将指令信息发送给用户空间,用户空间生成加载命令并发送给驱动模块,驱动模块根据加载命令驱动调试设备,以使得调试设备能够被枚举。
本发明实施例还提供了一种调试设备的枚举装置。
图4是根据本发明实施例的调试设备的枚举装置的示意图。如图所示,该调试设备的枚举装置包括:接收单元10、生成单元20和驱动单元30。
接收单元10用于在测试端与被测试端连接时,接收来自测试端的指令信息,其中,指令信息为指示被测试端枚举被测试端中调试设备的信息。
将需要被测试的终端与进行测试的电脑连接,即测试端与被测试端相连接,通过测试端查看被测试端中是否有调试设备被枚举,如果能够查看那到被测试端中具有调试设备,但是该调试设备无法被枚举,则测试端向被测试端发送指令信息,相应地,被测试端接收来自测试端的指令信息。
例如,测试端为windows***的电脑,被测试端为安卓***的手机,在电脑与手机处于连接状态时,通过windows***中的设备管理器可以查看手机中是否有调试设备被枚举,如果查看到手机中具有能够被枚举的调试设备,则向手机发送用于指示手机枚举该调试设备的信息,即向手机发送指令信息。
生成单元20用于根据指令信息生成加载命令,其中,加载命令为加载调试设备的命令。
被测试端接收指令信息,并根据指令信息生成加载命令,以通过加载命令进行调试设备的加载,最终使得调试设备被枚举。
驱动单元30用于根据加载命令驱动调试设备以枚举调试设备。
被测试端根据加载命令驱动调试设备,从而使得调试设备能够被枚举,即测试端可以对枚举出的调试设备进行操作。例如,在枚举出调试设备之后,测试端可以通过调试设备完成抓取log、获取手机信息和获取操作文件等动作,从而对被测试端的异常进行分析。
通过上述实施例,在被测试端无法开机时,只要在测试端与被测试端连接时,在测试端能够查看到该被测试端能够被枚举的调试设备,即可以通过接收来自测试端的指令信息,指示被测试端驱动调试设备,以使调试设备被枚举,从而在被测试端因故障导致无法开机时,也能够枚举被测试端中的调试设备,进而通过枚举出的调试设备对被测试端的问题进行分析和解决。
图5是根据本发明优选实施例的调试设备的枚举装置的示意图。如图所示,该调试设备的枚举装置包括:接收单元10、生成单元20和驱动单元30,其中,接收单元10、生成单元20和驱动单元30的作用于图4所示实施例的作用相同,不再赘述,生成单元20包括:
监听模块201用于通过被测试端的操作***中的内核空间监听指令信息。
被测试端的操作***中的内核空间监听指令信息,即通过内核空间检测是否有来自测试端的指令信息。
发送模块202用于在内核空间监听到指令信息之后,向操作***中的用户空间发送指令信息。
在内核空间监听到指令信息之后,向用户空间发送指令信息。例如,在安卓***中,利用netlink套接字作为用户空间和内核空间的通信接口,通过netlink套接字向用户空间发送指令信息。
生成模块203用于通过用户空间根据指令信息生成加载命令,其中,用户空间将加载命令发送给内核空间。
用户空间根据指令信息生成加载命令,用户空间将加载命令发送给内核空间。
通过上述实施例,通过内核空间接收指令信息,并将指令信息发送给用户空间,用户空间根据指令信息生成加载命令,并将生成的加载命令发送给内核空间,通过内核空间驱动调试设备,使得调试设备被枚举。由于内核空间和用户空间分别用来处理较高权限的应用程序和普通应用程序,则通过内核空间可以接收到来自测试端的指令信息,并使得用户空间生成加载命令,再将生成的加载命令发送给内核空间,从而既保证被测试端能够及时接收到指令信息,还能够在保证被测试端安全的情况下枚举调试设备。
进一步地,驱动单元包括:第一接收模块,用于通过内核空间接收加载命令。驱动模块,用于通过内核空间根据加载命令驱动调试设备,其中,在驱动调试设备之后,被测试端枚举调试设备。
内核空间接收到来自用户空间的加载命令之后,根据加载命令驱动调试设备,在调试设备被驱动后,被测试端枚举该调试设备。例如,在内核空间根据加载命令驱动调试设备,以使得调试设备能够被枚举。
优选地,为了便于枚举调试设备,接收单元包括:连接模块,用于通过USB连接测试端与被测试端。检测模块,用于检测被测试端中是否有USB设备。第二接收模块,用于在检测到被测试端中具有USB设备时,接收预定指令信息,其中,预定指令信息的格式为测试端和被测试端之间的通信协议的格式,预定指令信息为指示被测试端枚举USB设备的指令。
在通过USB连接测试端与被测试端之后,可以通过以下两种方式枚举调试设备。
方式一:
在被测试端无法开机时,如果检测到被测试端中具有USB设备,则接收预定指令信息包括:判断检测到的USB设备是否为大容量存储器。如果检测到的USB设备为大容量存储器,则接收来自测试端的SCSI命令,其中,SCSI命令用于指示被测试端枚举USB设备。
大容量存储器即mass storage设备,在测试端与被测试端通过USB连接之后,如果确定被测试端中具有USB设备之后,判断该USB设备是否为大容量存储器,并接收来自测试端的SCSI命令。其中,为了使得被测试端能够识别出指令信息,该SCSI命令的命令格式与常用的SCSI的命令格式相同,但是命令的内容与现有的SCSI命令不同,由于被测试端枚举USB设备的SCSI命令的格式与现有SCSI命令相同,而内容不同于现有的SCSI命令,能够避免该被测试端接收到的SCSI命令与其他SCSI命令区分,以免造成MassStorage功能出现异常。
方式二:
在被测试端无法开机时,且该被测试端不能枚举mass storage时,就不能利用方式一进行调试设备的枚举了,那么,如果检测到被测试端中具有USB设备,则接收预定指令信息包括:判断检测到的USB设备是否为媒体传输设备或远程网络驱动接口设备。以及如果检测到的USB设备为媒体传输设备或远程网络驱动接口设备,则接收通过索引命令发送的USB请求包,其中,USB请求包用于指示被测试端枚举USB设备。
被检测端中负责进行电脑和终端之间进行文件操作的设备不是mass storage时,通过检测端检测这些进行文件操作的文件来枚举USB设备。例如,负责进行电脑和中断之间进行文件操作的设备为媒体传输设备或远程网络驱动接口设备。其中,媒体传输设备为MTP,远程网络驱动接口设备为rndis,判断监测到的USB设备为MTP、rndis或任何USB设备时,接收通过索引命令发送的USB请求包,其中,该USB请求包用来指示被测试端枚举USB设备。其中,索引命令为电脑中的USB request命令。
在上述实施例中,被测试端通过接收指令信息来驱动调试设备,从而使得调试设备能够在被测试端处于没有启动的状态时,也能够枚举出调试设备。从而解决了现有技术中在终端不能启动时,无法枚举终端中的调试设备的问题,进而达到了在终端不能启动时,也能枚举出终端中的调试设备,再利用调试设备对终端继续调试和问题分析。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种调试设备的枚举方法,其特征在于,包括:
当在被测试端无法开机的情况下,在测试端与所述被测试端连接时,所述被测试端接收来自所述测试端的指令信息,其中,所述指令信息为指示所述被测试端枚举所述被测试端中调试设备的信息;
所述被测试端根据所述指令信息生成加载命令,其中,所述加载命令为加载所述调试设备的命令;以及
所述被测试端根据所述加载命令驱动所述调试设备以枚举所述调试设备;
其中,在测试端与所述被测试端连接时,所述被测试端接收来自所述测试端的指令信息包括:
通过USB连接所述测试端与所述被测试端;
检测所述被测试端中是否有USB设备;
如果检测到所述被测试端中具有USB设备,则接收预定指令信息,其中,所述预定指令信息的格式为所述测试端和所述被测试端之间的通信协议的格式,所述预定指令信息为指示所述被测试端枚举所述USB设备的指令。
2.根据权利要求1所述的枚举方法,其特征在于,所述被测试端根据所述指令信息生成加载命令包括:
所述被测试端的操作***中的内核空间监听所述指令信息;
在所述内核空间监听到所述指令信息之后,向所述操作***中的用户空间发送所述指令信息;以及
所述用户空间根据所述指令信息生成所述加载命令,其中,所述用户空间将所述加载命令发送给所述内核空间。
3.根据权利要求2所述的枚举方法,其特征在于,所述被测试端根据所述加载命令驱动所述调试设备以枚举所述调试设备包括:
所述内核空间接收所述加载命令;
所述内核空间根据所述加载命令驱动所述调试设备,其中,在驱动所述调试设备之后,所述被测试端枚举所述调试设备。
4.根据权利要求1所述的枚举方法,其特征在于,如果检测到所述被测试端中具有USB设备,则接收预定指令信息包括:
判断检测到的USB设备是否为大容量存储器;以及
如果检测到的USB设备为所述大容量存储器,则接收来自所述测试端的SCSI命令,其中,所述SCSI命令用于指示所述被测试端枚举所述USB设备。
5.根据权利要求1所述的枚举方法,其特征在于,如果检测到所述被测试端中具有USB设备,则接收预定指令信息包括:
接收通过索引命令发送的USB请求包,其中,所述USB请求包用于指示所述被测试端枚举所述USB设备。
6.根据权利要求1所述的枚举方法,其特征在于,所述被测试端接收来自所述测试端的指令信息包括:
所述被测试端检测按键编码信息、预定动作信息或者预定图像信息;以及
当检测到所述按键编码信息、所述预定动作信息或者所述预定图像信息之后,解析检测到的信息携带的指令信息。
7.根据权利要求1所述的枚举方法,其特征在于,所述被测试端接收来自所述测试端的指令信息包括:
所述被测试端通过无线通道的方式接收来自所述测试端的所述指令信息。
8.一种调试设备的枚举装置,其特征在于,包括:
接收单元,用于当在被测试端无法开机的情况下,在测试端与所述被测试端连接时,接收来自所述测试端的指令信息,其中,所述指令信息为指示所述被测试端枚举所述被测试端中调试设备的信息;
生成单元,用于根据所述指令信息生成加载命令,其中,所述加载命令为加载所述调试设备的命令;以及
驱动单元,用于根据所述加载命令驱动所述调试设备以枚举所述调试设备;
其中,所述接收单元包括:
连接模块,用于通过USB连接所述测试端与所述被测试端;
检测模块,用于检测所述被测试端中是否有USB设备;
第二接收模块,用于在检测到所述被测试端中具有USB设备时,接收预定指令信息,其中,所述预定指令信息的格式为所述测试端和所述被测试端之间的通信协议的格式,所述预定指令信息为指示所述被测试端枚举所述USB设备的指令。
9.根据权利要求8所述的枚举装置,其特征在于,所述生成单元包括:
监听模块,用于通过所述被测试端的操作***中的内核空间监听所述指令信息;
发送模块,用于在所述内核空间监听到所述指令信息之后,向所述操作***中的用户空间发送所述指令信息;以及
生成模块,用于通过所述用户空间根据所述指令信息生成所述加载命令,其中,所述用户空间将所述加载命令发送给所述内核空间。
10.根据权利要求9所述的枚举装置,其特征在于,所述驱动单元包括:
第一接收模块,用于通过所述内核空间接收所述加载命令;
驱动模块,用于通过所述内核空间根据所述加载命令驱动所述调试设备,其中,在驱动所述调试设备之后,所述被测试端枚举所述调试设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410320120.XA CN104079453B (zh) | 2014-07-07 | 2014-07-07 | 调试设备的枚举方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410320120.XA CN104079453B (zh) | 2014-07-07 | 2014-07-07 | 调试设备的枚举方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104079453A CN104079453A (zh) | 2014-10-01 |
CN104079453B true CN104079453B (zh) | 2018-05-18 |
Family
ID=51600508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410320120.XA Expired - Fee Related CN104079453B (zh) | 2014-07-07 | 2014-07-07 | 调试设备的枚举方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104079453B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991846B (zh) * | 2015-07-01 | 2018-03-02 | 上海斐讯数据通信技术有限公司 | 一种移动终端工作模式的切换***和方法 |
WO2019061343A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳传音通讯有限公司 | 一种用于智能终端的设备的检测方法及检测装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131308A (zh) * | 2010-01-18 | 2011-07-20 | 盛大计算机(上海)有限公司 | PC端操作Android手机文件***的方法 |
CN102662924A (zh) * | 2012-03-14 | 2012-09-12 | 福州瑞芯微电子有限公司 | 基于混合编码解决pc向安卓***传输字符集不兼容方法 |
CN103246586A (zh) * | 2013-04-19 | 2013-08-14 | 福州瑞芯微电子有限公司 | android平台上利用USB存储设备进行ADB调试的方法 |
CN103559126A (zh) * | 2013-10-25 | 2014-02-05 | 深圳市欧珀通信软件有限公司 | 一种测验软件版本的方法、装置及电脑终端 |
-
2014
- 2014-07-07 CN CN201410320120.XA patent/CN104079453B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131308A (zh) * | 2010-01-18 | 2011-07-20 | 盛大计算机(上海)有限公司 | PC端操作Android手机文件***的方法 |
CN102662924A (zh) * | 2012-03-14 | 2012-09-12 | 福州瑞芯微电子有限公司 | 基于混合编码解决pc向安卓***传输字符集不兼容方法 |
CN103246586A (zh) * | 2013-04-19 | 2013-08-14 | 福州瑞芯微电子有限公司 | android平台上利用USB存储设备进行ADB调试的方法 |
CN103559126A (zh) * | 2013-10-25 | 2014-02-05 | 深圳市欧珀通信软件有限公司 | 一种测验软件版本的方法、装置及电脑终端 |
Also Published As
Publication number | Publication date |
---|---|
CN104079453A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
KR101027971B1 (ko) | 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법 | |
US9697108B2 (en) | System, method, and apparatus for automatic recording and replaying of application executions | |
CN102439888B (zh) | 一种快速通道互连链路监控方法和设备及*** | |
US9767003B2 (en) | Conditional component breakpoint setting system and method | |
KR101414720B1 (ko) | 열차제어시스템 소프트웨어 기능안전성 테스팅 장치 및 그 방법 | |
CN109525509A (zh) | 网卡镜像抓包方法、终端以及可读存储介质 | |
KR101874416B1 (ko) | 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션 | |
CN110188013A (zh) | 一种日志读写功能测试方法、装置及电子设备和存储介质 | |
CN106872879B (zh) | 硬件无线调试方法、装置、通信芯片及电子设备 | |
TW201423385A (zh) | 電腦測試系統及方法 | |
US20210111967A1 (en) | Graphical user interface for traffic capture and debugging tool | |
CN114338493A (zh) | 基于网络协议栈的ncsi测试方法、***、装置及存储介质 | |
CN104079453B (zh) | 调试设备的枚举方法和装置 | |
CN108364670A (zh) | 读写压力测试方法、装置、设备及存储介质 | |
CN109921960B (zh) | 一种idc机房网络异常测试方法及装置 | |
TW201423387A (zh) | Sas擴展卡測試系統及方法 | |
CN104536884B (zh) | 代码测试方法和装置 | |
US8516311B2 (en) | System and method for testing peripheral component interconnect express switch | |
CN110968004A (zh) | 一种基于FPGA原型验证开发板的Cable测试***及方法 | |
CN103281221B (zh) | 消防物联网***测试方法 | |
KR101425641B1 (ko) | 전자 게임기기 테스트 관리시스템 | |
CN110191013A (zh) | 电子装置、多资方接口的Mock测试方法及存储介质 | |
CN112148537A (zh) | 总线监控装置及方法、存储介质、电子装置 | |
CN104219012B (zh) | 应答器传输模块的emc测试***与测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180518 Termination date: 20210707 |
|
CF01 | Termination of patent right due to non-payment of annual fee |