WO2020222673A1 - Method and system for diagnosing mobile computing devices - Google Patents

Method and system for diagnosing mobile computing devices Download PDF

Info

Publication number
WO2020222673A1
WO2020222673A1 PCT/RU2019/000825 RU2019000825W WO2020222673A1 WO 2020222673 A1 WO2020222673 A1 WO 2020222673A1 RU 2019000825 W RU2019000825 W RU 2019000825W WO 2020222673 A1 WO2020222673 A1 WO 2020222673A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
mobile
mobile computing
diagnostics
user
Prior art date
Application number
PCT/RU2019/000825
Other languages
French (fr)
Inventor
Grigorii Lvovich GLAZMAN
Original Assignee
Glazman Grigorii Lvovich
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Glazman Grigorii Lvovich filed Critical Glazman Grigorii Lvovich
Publication of WO2020222673A1 publication Critical patent/WO2020222673A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0742Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Definitions

  • the invention relates to the field of electrical engineering and information technology and computing, and more specifically to the diagnosis (testing) of computing devices, in particular, mobile computing devices such as smart phones, mobile (cell) phones, tablets, personal digital assistants (PDA) and others and can be used to diagnose various computing devices (user), in particular, mobile computing devices.
  • mobile computing devices such as smart phones, mobile (cell) phones, tablets, personal digital assistants (PDA) and others and can be used to diagnose various computing devices (user), in particular, mobile computing devices.
  • the disadvantage of the mentioned method and system is the need to use safemode (protected) mode for diagnosing the mentioned devices, as well as the need to use root-rights, jail break (jailbreak) on such devices in order to implement the mentioned method and system. Also, the lack of the mentioned methods and system requires the mandatory reboot of the mentioned devices in order to carry out their diagnostics.
  • Also known is a method for automating functional testing for gesture-driven mobile applications (see US 9154611 B l, publ. 10/06/2015), which includes the launch of a functional testing program on the server.
  • the program for functional testing (diagnostics) provides a graphical interface that allows the user to select a mobile application and a mobile computing device with a touch screen for user input.
  • the mobile computing device is a remote device with respect to the server.
  • the functional testing program launches a mobile application on a mobile computing device via a wireless network connection.
  • the server receives precision elements for each gesture on the touch screen, where the precision elements are intercepted and transferred from the mobile computing device to the server during the execution of the mobile application, and the precision elements are then saved.
  • the disadvantage of this method is testing a mobile application and a touch screen, and testing is carried out on a server and not on a mobile computing device.
  • the disadvantage of this solution is testing only the mobile application without diagnosing the mobile device and its constituent elements, moreover, in order to place such a mobile application in the mobile application store.
  • the proposed system and method allows to overcome at least part of the above disadvantages or all of these disadvantages, as well as to realize the advantages of the present invention, as described in the framework of the present invention.
  • the technical result achieved by the invention consists in increasing the speed and quality of diagnostics of mobile computing devices and their constituent elements.
  • a method for diagnosing mobile computing devices which includes: installing a mobile applications for diagnostics synchronization and installation service on at least one of the user's computing devices; implementation of installation on a user’s computing device of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices, which are diagnosed devices, for establishing communication between mobile computing devices and user’s computing devices; establishing a connection between mobile computing devices and user computing devices; implementing the installation of a mobile diagnostic application for a mobile computing device on at least one such mobile computing device, wherein the installation of said mobile diagnostic application is carried out by means of a mobile applications for diagnostics synchronization and installation service; a user launching said mobile diagnostic application on a mobile computing device, and at the time of launching a mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predetermined port, where the mentioned port is automatically selected from the available ports of mobile applications for diagnostics synchronization and installation service; diagnosing a mobile computing device,
  • the diagnostics of the functioning of the software installed on the mobile computing device including the diagnostics of drivers for the constituent elements of the mobile computing device and applications, is performed.
  • the software of the mobile computing device is updated, including at least one application installed on it, or at least one part of such an application, and such mentioned part of application is associated with a specific component of a mobile computing device.
  • the drivers of the constituent elements of the mobile computing device, operating systems or components of the operating systems of the mobile computing device and / or the user's computing device are updated.
  • a mobile diagnostic application determines the available number of constituent elements of a mobile computing device, which are diagnosed using a mobile diagnostic application.
  • the constituent elements of the mobile computing device are microphone (s), speaker (s), screen (s), sensor (s), camera (s) and flash (s).
  • the speakers of the mobile computing device are diagnosed, and the audio recording is played on the mobile computing device, and a set of images is displayed on the mobile computing device during or after the audio recording is played, where at least one of such images corresponds to the audio recording, and then by the user of the mobile computing device after or during listening the record is used to select said image corresponding to the reproduced record, and if the user selected image corresponds to the reproduced record, the diagnostics of mobile computing device speaker is passed by such a mobile computing device.
  • the microphones of the mobile computing device are diagnosed, and after launching the mobile diagnostic application during the diagnostic process, the mobile diagnostic application records "white noise” by means of at least one mobile computing device microphone and, if mobile diagnostic application has determined that the "white noise" was recorded, then the mobile diagnostic application captures that the microphone is operable.
  • the mobile computing device is diagnosed for“hacking”, and this diagnostics includes checking for the possibility of free access for the user and / or one of the applications installed on the mobile computing device to the file system of the mobile operating system in the mobile computing device, moreover, the aforementioned diagnostics is carried out by installing a Windows service on the mobile computing device of a mobile application, which is not signed by the developer, and during the attempt to run such unsigned application by the mobile application for diagnostics or by the user the check is performed in which if it is possible implementation of start of said unsigned application, the device is considered "hacked”.
  • mobile computing devices are automatically connected to at least one user computing device.
  • the mobile applications for diagnostics synchronization and installation service for each connected mobile computing device to the user's computing device creates a dedicated program execution flow as part of the mobile applications for diagnostics synchronization and installation service, and the dedicated program execution flow performs at least , one attempt to organize a socket with a TCP server, and the mobile applications for diagnostics synchronization and installation service attempts to establish a connection between the mobile computing device and the user's computing device.
  • two-way data exchange is performed between the mobile diagnostic application installed on the mobile computing device and the synchronization and installation service of mobile applications to diagnose the user's computing device, and the two-way data exchange is performed by means of a protocol that contains control words, message formation rules, rules for encryption of messages and methods for their analysis, where the operation of the mentioned protocol is carried out via the TCP / IP protocol stack, in particular, through the transport layer of such a protocol through the sockets created during the connection.
  • a dedicated flow of mobile applications for diagnostics synchronization and installation service is created, and the independent connection mentioned above is established with each of the simultaneously connected mobile computing devices at that the control of navigation in windows of mobile application for diagnostics is carried out through the mentioned connection.
  • a dedicated program execution flow is performed after: the mobile applications for diagnostics synchronization and installation service receives a list of connected mobile computing devices; matching by the mobile applications for diagnostics synchronization and installation service of a connected mobile computing device with a list of connected mobile computing devices to at least one user computing device; checking by the the mobile applications for diagnostics synchronization and installation service of a new mobile computing device connected to the user's computing device, and if such a mobile computing device is found in the list of connected mobile computing devices, such a device is added to the list of connected mobile computing devices.
  • a mobile diagnostic application retrieves data about the manufacturer of a mobile computing device and obtains the properties of a mobile computing device.
  • commands are sent by the user's computing device to at least one mobile computing device and the user's computing device waits for a response from the mobile computing device containing the diagnostic results of the mobile computing device.
  • the mobile applications for diagnostics synchronization and installation service sends encrypted data to a mobile computing device using one of the known encryption methods that the mobile diagnostic application uniquely interprets by using timestamps, a password stored on a web server, and using for protection against a possible implementation of the decoding of said data by third party users, services, applications and systems.
  • a system for diagnosing mobile computing devices includes: at least one mobile computing device that is a diagnosable device on which the the following is being performed: installation of a mobile application for diagnosing a mobile computing device, and installing said mobile diagnostic application carried out through the mobile applications synchronization and installation service, and at that the launch of mobile diagnostic application on a mobile computing device, where at the time of launching a mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predetermined port, where the mentioned port is automatically selected from the available ports by the mobile applications for diagnostic synchronization and installation service, and diagnostics of a mobile computing device includes the process of making a diagnostics of constituent elements of the mobile computing device; at least one user computing device associated with at least one mobile computing device, at that on the user’s computing device the following is performed: installation of mobile applications for diagnostics synchronization and installation service; installation of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices to establish communication between the mobile
  • FIG. 1 illustrates an example system for diagnosing mobile computing devices, in accordance with one embodiment of the present invention
  • FIG. 2 illustrates an exemplary design of a diagnostic system for mobile computing devices, in accordance with one embodiment of the present invention
  • FIG. 3 illustrates a block diagram of an exemplary embodiment of the present invention
  • FIG. 4 illustrates an exemplary of mobile applications for diagnostics synchronization and installation service in accordance with one implementation of the present invention.
  • FIG. 5 illustrates the execution of a dedicated program flow in accordance with one embodiment of the present invention.
  • FIG. 6 illustrates an example of a general-purpose computer system.
  • the terms “component”, “element”, “system”, “module”, “part”, in particular, “constituent part”, and the like are intended (used) to refer to computer entities (entities / objects related computer, computing entities), which may be hardware / equipment (for example, a device, instrument, apparatus, equipment, device component, in particular, a processor, microprocessor, printed circuit board, etc ), software (for example, executable program code, compiled application, software module, part of the software and / or code, etc.) or firmware.
  • hardware / equipment for example, a device, instrument, apparatus, equipment, device component, in particular, a processor, microprocessor, printed circuit board, etc
  • software for example, executable program code, compiled application, software module, part of the software and / or code, etc.
  • firmware firmware
  • a component can be a process running on a processor, a processor, an object, an executable file, a program, a function, a method, a library, a subprogram, and / or a computing device (for example, a microcomputer or computer) or a combination of software or hardware.
  • a computing device for example, a microcomputer or computer
  • an application running on a server can be a component or a module
  • a server can be a component or module.
  • At least one component can be (located) inside the process.
  • the component may be located on a single computing device (for example, a computer) and / or may be distributed between two or more computing devices.
  • an application can be represented by a server component (server part) and a client component (client part).
  • the client component is installed on at least one computing device
  • the server component is installed on the second computing device, from which, in the particular case, the first computing device (and / or its component components / parts.
  • FIG. 1 showed an exemplary system for diagnosing mobile computing devices, in accordance with one embodiment of the present invention.
  • a system that implements a method (or at least one part of a method) described within the framework of the present invention, an exemplary embodiment of which is shown in FIG. 1 contains at least one web server 1 10 connected to at least one database server 120.
  • the web server 1 10 may be associated with at least one user computing device (client computing device) 140A, 140B ... 140N., For example, via the Internet.
  • client computing device client computing device
  • Such user computing devices (140A, 140B ... 140N) can be various (including digital, analog, combined, mechanical, etc.) devices, in particular, but not limited to, electronic devices.
  • such user computing devices (140A, 140B ... 140N) can be personal computers, electronic computers (computers), laptops, servers, workstations, all- in-one computers, computer stands, desktop computers, test benches, computer demonstration boards, and etc.
  • FIG. 1 system can also include at least one mobile computing device (150 A, 150 ⁇ , 150B, 150 ⁇ , 150 Correct 150E, 150 ⁇ , 150 ⁇ ... 150N), a diagnosed (tested) mobile computing device, and which can be connected at least with one user computing device (140 A, 140B ... 140N).
  • a mobile computing device 150A, 150B, 150C, 150D, 150E, 150F, 150G, 150H ... 150N
  • a mobile computing device can be connected to the user's computing device (140A, 140B ... 140N) via the USD interface or by any other type (type, means, etc.) of communication, as described in more detail below.
  • diagnosed (mobile computing) device may be such a mobile device, such as a telephone (mobile, cellular, etc ), tablet, smart phone, etc.
  • at least one operating system can be installed on a mobile computing device (150 A ... 150N), for example, a mobile operating system (mobile OS), in particular, Android, iOS.
  • mobile OS mobile operating system
  • Android iOS
  • a particular case of a user is at least one administrator (operator, client, etc ), i.e., in a particular case, a person interested in diagnosing mobile computing devices (150A ... 150N) or performing diagnostics of mobile computing devices (150A ... 150N), in particular, performing testing of devices (150A ... 150N).
  • the user can perform diagnostics (testing) of at least one functionality of a mobile computing device (150A ... 150N), for example, through interaction with such a device (150A ... 150N). In the particular case, the interaction is pressing the buttons (keys) of the device (150A ... 150N), interaction with the touch screen of such a device (150A ...
  • the user is also an administrator (operator, client, etc ), i.e., in a particular case, a person interested in working or maintaining the equipment, for example, web server 110 and / or server data 120, user computing devices (140A ... 140N), data storages, communication between components (modules) of the described system, an exemplary version of which is shown in FIG. 1.
  • a user can install a mobile application for diagnostic (of mobile computing devices (150A ... 150N)) 280 on devices (150A ...
  • components of the described system may be an integral part of the described system and / or may be connected to the said system.
  • the components of the system shown in FIG. 1 may be an integral part of the described system and / or may be connected to the said system.
  • FIG. 1 can be connected by one or another currently known or invented in the future directly (for example, by means of terminals and / or wires, soldering, riveting, etc.) or indirectly (by means of intermediate devices, including various kinds of converters, in particular, information converters / converters, including data, in analog form, digital form or in any other known form of information). It is worth noting that the components of the system depicted in FIG. 1 can be interconnected via wired communication, wireless communication, through various types of connectors, wires, etc.
  • the components of the system depicted in FIG. 1 can be interconnected (and with any other components, devices and services capable of receiving information from the components of the described system and / or transmitting data to the described system components) through various types of communication, for example, via a local area network (LAN ), Internet (130), (by means of) mobile communication, satellite communication and / or by means of any other type or method of wired communication (for example, through a USB interface, an RS-232 / COM interface, etc.) and / or wireless communication, for example, Bluetooth, Wi-Fi, mobile cellular (GSM), including 3G, 4G, LTE, in particular, in the 850/900/1800/1900 MHz bands, satellite communication, trunking communication and data transmission channels ultra-low power, forming complex wireless networks with a mesh topology (ZigBee), etc.
  • LAN local area network
  • Internet 130
  • wireless communication for example, Bluetooth, Wi-Fi, mobile cellular (GSM), including 3G, 4G, LTE, in particular, in the
  • At least one part of the method described in the framework of the present invention can be implemented on the web server 110 and / or on the user's computing device (140A ... 140N), and / or on a mobile computing device (150A ... 150N). It is worth noting that the connection between the web server 1 10 and the user's computing devices (140A ... 140N) and / or the database server 120, and / or between the user's computing devices (140A ...
  • the database server 120 can be implemented through at least one data transfer protocol, including a network protocol, for example, TCP / IP, HTTP / HTTPs (Hyper Text Transfer Protocol), FTP (File Transfer Protocol), POP3 (Post Office Protocol, standard mail connection protocol), SMTP (Simple Mail Transfer Protocol, a protocol that defines a set of rules for sending mail), TELNET (Remote Access Protocol), XMPP (Extensible Messaging and Presence Protocol - an extensible messaging and presence information protocol, formerly known as Jabber— open, XML based protocol for instant messaging and presence information in near real-time mode), DTN, etc.
  • a network protocol for example, TCP / IP, HTTP / HTTPs (Hyper Text Transfer Protocol), FTP (File Transfer Protocol), POP3 (Post Office Protocol, standard mail connection protocol), SMTP (Simple Mail Transfer Protocol, a protocol that defines a set of rules for sending mail), TELNET (Remote Access Protocol), XMPP (Extensible Messaging
  • the above web server 110 can be implemented by a specialized computing device (in particular, a computer) and / or specialized equipment to perform service software on it, including services of various tasks.
  • a specialized computing device in particular, a computer
  • service software including services of various tasks.
  • the database server 120 maintains and manages at least one database and is responsible for the integrity and safety of the data, and also provides input-output operations when the client accesses the information. It is also worth noting that the mentioned database can be located on at least one data storage.
  • the data storage is a device for storing information / data and can be implemented by at least one hard disk drive (HDD, hard (magnetic) disk drive), a solid-state drive (SSD, solid-state drive, hybrid hard disk drive (SSHD, solid-state hybrid drive), storage area network (SAN, storage area network), network storage system / network storage (NAS, Network Attached Storage) and / or any other device that allows at least recording and / or storing data.
  • HDD hard (magnetic) disk drive
  • SSD solid-state drive
  • SSHD solid-state hybrid hard disk drive
  • SAN storage area network
  • NAS Network Attached Storage
  • the data in the said data storages can be stored in any known format, for example, in a database (DB), for example, in the form of at least one table or a set of related or unrelated database tables.
  • DB database
  • at least one mentioned database can be a hierarchical, object, object-oriented, object-relational, relational, network and / or functional database, each of which can be centralized, concentrated, distributed, inhomogeneous, homogeneous, fragmented / partitioned, replicated, spatial, temporal, spatial-temporal, cyclic, super-large database, etc., at that various database management systems can be used to manage, create and use databases (DBMS).
  • DBMS database management systems
  • the data in the said data stores can be stored in at least one file, in a particular case, in the form of a text file, or the data can be stored in any at least one other data / information storage format currently known or data format invented later.
  • At least one part of the described method and system may be software or part of the application.
  • at least one part of the described method and system can be at least one service implemented, for example, program code, script / scripts, and also be executable components of various systems (in particular, computer systems) and subsystems (for example, input subsystems, output subsystems, storage subsystems, in particular, disk subsystems, data transfer subsystems, etc.).
  • program components of the application may include execution of program code, application executable code, machine code, etc., in particular, in compiled and / or non-compiled form, for example, in the form of javascript (java -scripts), as well as in the form of one of the intermediate languages (programming), for example, the intermediate language CIL, Common Intermediate Language.
  • FIG. 2 shows an exemplary diagram of a diagnostic system for mobile computing devices, in accordance with one embodiment of the present invention.
  • the mobile applications for diagnostics synchronization and installation service 210 is installed on the user's computing device (140A ... 140N).
  • the service 210 allows the installation of mobile applications for diagnostics 280 to mobile computing devices (I50A ... 150N).
  • the algorithm of the mobile applications for diagnostics synchronization and installation service 210 is shown in more detail in FIG. 4.
  • the user's computing device 140 A ...
  • a web browser (browser, web browser) 220 could be installed, for example, Internet Explorer, Mozilla Firefox, Google Chrome, Safari, Opera, Microsoft Edge and etc.
  • the web browser 220 is used to provide the user with an interface (in particular, a web interface), in a particular case, being a user interface (user interface) for displaying HTML, content to the user.
  • service 210 in the particular case is carried out under the control of the Windows operating system (OS), i.e. is a Win service (Windows service).
  • OS Windows operating system
  • Win service Windows service
  • the service 210 communicates with the application 280 through the data exchange module 230, which in the particular case is“Android debug bridge” (ADB) or“LibiMobileDevice iOS Data Bridge”.
  • data exchange module 230 allows data exchange between service 210 and application 280, and such data are parameters, serial numbers of mobile computing devices (150A ... 150N), other identification data, the ability to control mobile computing devices (150 A. ..150N) (functions of such mobile computing devices), etc., as described in more detail in the framework of the present invention.
  • service 210 (which is a special case of a Windows application running (executed) in Service mode (service) synchronizes mobile computing devices (150A ... 150N), in particular, data between service 210 on a computing device (150A ... 150N), and data stored in at least one database, database server 120, through a web service 250.
  • a service on a mobile computing device (150A ... 150N) transfers data such as parameters (characteristics), serial numbers, IMEI, battery statuses (batteries, accumulators etc.) to a user's computing device (client computing device) 140 of at least one mobile computing device (150A ... 150N).
  • the data transfer between the service 210 and mobile computing devices is carried out through a USB connection between such services and devices.
  • the web server 110 may include a web service 250 installed on it, which in the particular case implements and publishes a set of methods by which data is transmitted (in particular, data synchronization) between the user's computing device (client computing device) 140 and the web server 1 10, where the web service 250 includes a set of methods, a database, and a (graphical) user interface.
  • application 280 organizes a TCP - server (from the English TCP, transmission control protocol) that waits for the user's computing devices (140A ...
  • 140N to be connected to the predetermined port by the developers of the described method and system, or at least one user, and the said port can also be automatically selected (and one of the available ports can be selected), for example, by service 210.
  • service 210 At least on one mobile computing device (150A ... 150N), such mobile computing devices (150A ... 150N) are automatically connected to at least one user computing device (140 A ... 140N).
  • service 210 for each connected mobile computing device (150 A ... 150N) to the user's computing device (140A ... 140N) organizes (creates) a dedicated Device Worker Thread - as part of service 210.
  • each dedicated program execution thread makes at least one attempt to organize a socket (Socket is a software interface to provide data exchange between processes, and such processes can be executed as on the same computing device during the exchange, or on various computing devices connected to each other) with a TCP server (in the particular case, which is a mobile application), in a particular case, service 210 attempts to establish a connection between the mobile computing device (150A ... 150N) and the user's computing device (140A ... 140N).
  • Socket is a software interface to provide data exchange between processes, and such processes can be executed as on the same computing device during the exchange, or on various computing devices connected to each other
  • TCP server in the particular case, which is a mobile application
  • a dedicated program flow retrieves data from at least one mobile computing device (150A ... 150N) that is diagnosed device, and also performs data processing, and transferring the received data from the mobile computing device (150A ... 150N) to the user's computing device (140A ... 140N), as demonstrated in FIG. 5.
  • two-way data exchange is performed between the application 280 installed on the mobile computing device (150A ... 150N) and the user's computing device (140 A ... 140N), particular service 210.
  • the mentioned two-way data exchange is carried out by means of a protocol, which, in the particular case, contains control words, message generation rules, message encryption rules and methods for their analysis, which are described in more detail below.
  • the operation of the mentioned protocol is carried out through the TCP / IP protocol stack, in particular through the transport layer of such a protocol through the mentioned sockets created during the connection process.
  • the implementation of the present invention regardless of the number of connected, in particular, connected, (simultaneously) mobile computing devices (150 A ... 150N) to the user's computing devices (140 A ... 140N), with each of which (mobile computing devices (150A ... 150N)) creation (establishment) of a dedicated service flow 210 is carried out and with each of which the aforementioned (independent) connection is established.
  • Navigation control in particular, navigation methods
  • 150N performs navigation ("understands” what needs to be done).
  • said two-way data exchange allows service 210 to receive data via said established connection (link).
  • These data are the results of the execution of commands by mobile computing devices (150A ... 150N), and these commands can be different commands and can vary depending on (types) of mobile computing devices (150A ... 150N), (type) of performed diagnostics of mobile computing devices (150 A ... 150N), settings of the computing device of the user 140A ... 140N, etc., moreover, such commands may include, for example, the command "LEFT”, which moves the screen of the mobile computing device ( 150A ...
  • service 210 with a predetermined (specified, for example, by user of a user's computing device 140A ... 140N) frequency (for example, 1 -5 seconds) sends to mobile computing device (150A ...
  • data which can be encrypted, for example, with one of the known methods or encryption methods
  • application 280 stops its operation and makes a request (for example, by displaying a message on a mobile computing device (150A ... 150N)) to the user to perform reconnecting (communicating) with the user's computing device (140A ... 140N), which in the particular case allows for protection application 280 from unauthorized use without a user's computing device (140A ... 140N), in which the service 210 is executed.
  • the mobile application 280 calculates the said hash sum. Also, the mobile application 280 receives the hash sum calculated on the user's computing device 140 A ... 140N. If the mentioned hash-sums do not coincide, then at least one computing device or application, for example, the computing device of user 140A ... 140N, there is registered as a violation of the expected hash-sum.
  • the protocol described above can be implemented by a two-way data exchange module (which is part of a mobile application 280) between application 280 installed on a mobile computing device (150A ... 150N) and service 210.
  • the mentioned module of two-way data exchange between the application 280 installed on the mobile computing device (150A ... 150N) and the service 210 is a module for controlling the connection (for example, via USB) and receiving / sending data (in particular, as described above for determining the hash sum violation) from the user's computing device (140 A ... 140N).
  • said connection control module performs at least two operations (functions), for example:
  • the application 280 when the application 280 is started, a separate thread of a TCP server is started, it listens on a certain port mapped on USB and accepts the connection of the user's computing device (140A ... 140N). So, for example, when launching a mobile application for diagnostics 280 on a mobile computing device (150A ... 150N), the mobile application for diagnostics 280 executes the code, and a part of this code implements a TCP server, which functions in standby mode.
  • the user's computing device (140 A ... 140N) on which the Windows application (service) is running, performs mapping of the local ports of the user's computing device (140A ... 140N) to the ports of USB-connected mobile computing devices (150A ... 150N). Further, a Windows application for each mobile computing device (150A ... 150N) establishes a connection to TCP servers organized on mobile computing devices (150A ... 150N).
  • the port number of such a connection may be the port number "2345".
  • a connection is established between the mobile computing device (150A ... 150N), for example, through the application 280, and the user's computing device (140A. ..140N), for example, by the service 210. If there is no connection, the application 280 suspends its execution ("work") and notifies the user about the need to establish the connection.
  • User notification can be displayed on the screen of a mobile computing device (150A ... 150N) and / or on the user's computing device (140 A ... 140N), for example, in the form "Establish a connection". In the case of a successful connection, the execution of application 280 continues.
  • a mobile computing device (150 A ... 150N) in particular, to a TCP server, data set, for example, as a string.
  • the mentioned data, in particular, in the form of a string, transmitted from the user's computing device (140A ... 140N) to a mobile computing device ( 150A ... 150N) can have the following format: [DD-MM-YYYY HH:MM:SS]: HASH: COMMAND, where
  • - HASH is a hash sum, for example, MD5, obtained (calculated using the hash function) from the string“[Date Time]: Password” (the password is stored in a constant in the data of mobile applications 213, the password is known to the user's computing device 140 and mobile application 213);
  • the application 280 performs the calculation of the hash sum from the string:“[DD-MM-YYYY HH: MM: SS]” +“Password”. If the calculated hash sum is not equal to the HASH value received from the user's computing device (140A ... 140N), then application 280 stops (application 280 stops working), otherwise application 280 continues to function (continues its work).
  • the mobile computing device 150A ... 150N
  • the TCP server analyzes the data and performs:
  • At least one of the above-mentioned method is performed by at least one computing device (for example, a user computing device (140A ... 140N) and / or a mobile computing device (150A ... 150N), and / or web server 1 10), in particular, software, service, etc., for example, mobile application 280 and / or service 210, and at least one of the above command initializes execution, at least one of the methods mentioned above.
  • a computing device for example, a user computing device (140A ... 140N) and / or a mobile computing device (150A ... 150N), and / or web server 1 10
  • software, service, etc. for example, mobile application 280 and / or service 210
  • the application 280 completes its work.
  • the application 280 sends to the user’s computing device (140A ... 140N) data on (results) diagnostics (in particular, a test) of the mobile computing device (150A ... 150N), for example, the name and / or identification data such a mobile computing device (150A ... 150N) and the state, in particular, whether this mobile computing device (150A ... 150N) works or does not work, or the state of at least one component of such a mobile computing device (150 A. ..150N), for example, speaker, microphone, USB-module, GSM-module, different buttons, sensors, cameras, etc., in particular, working or not working this particular part of such a mobile computing device (150A ... 150N).
  • the application 280 sends to the user’s computing device (140A ... 140N) data on (results) diagnostics (in particular, a test) of the mobile computing device (150A ... 150N), for example, the name and / or identification data such a mobile computing device
  • Such data in particular, in the form of a string, transmitted from a mobile computing device (150 A ... 150N), in particular from a TCP server, to a user's computing device (140A ... 140N), can have the following format:
  • SN ID is identifier of the mobile computing device (150A ... 150N), SN - serial number of the mobile computing device ( 150A ... 150N) ,;
  • - TYPE TypeValue TYPE as it is, TypeValue - one of two values:“PROP” are properties (IMEI, etc.) or“TEST” - test results;
  • FIG. 3 is a block diagram of an exemplary embodiment of the present invention.
  • the user installs service 210 on at least one of the user's computing devices (140A ... 140N). Also, on at least one user's computing device (140A...140N) the user installs (necessary) drivers, in particular, from manufacturers of mobile operating systems and manufacturers of mobile computing devices (150A...150N), for example, from Apple and Android to establish a connection (link) between mobile computing devices (150 A ... 150N) and user computing devices (140 A ... 140N).
  • manufacturers of mobile operating systems and manufacturers of mobile computing devices 150A...150N
  • Apple and Android to establish a connection (link) between mobile computing devices (150 A ... 150N) and user computing devices (140 A ... 140N).
  • step 317 a connection (link) is established between mobile computing devices (I50A ... 150N) and user computing devices (140 A ... 140N).
  • step 320 service 210 installs application 280 on mobile computing devices (150 A ... 150N).
  • application 280 is installed (at step 320), at least on one mobile computing device (150A ... 150N), at step 323, the user launches application 280 on the device (150A ... 150N).
  • the device (150A ... 150N) is diagnosed (tested), in particular by means of a mobile application for diagnostics 280 and by the user.
  • the process of diagnosing a mobile computing device (150A ... 150N) is carried out, in particular, the process of checking (diagnosing, testing) the constituent elements of a mobile computing device (150 A ... 150N) is carried out.
  • the process of testing (checking, diagnosing) the functioning (in particular, operability) of at least one component of the mobile computing device (150A ... 150N) is carried out. It is also worth noting that in the process of diagnostics (testing, verification) of a mobile computing device (150A ...
  • diagnostics of the functioning of software installed on a mobile computing device (150A ... 150N), including diagnostics of drivers for constituent components of mobile computing device (150A ... 150N), applications, including application 280 can be performed. It is also worth noting that in the process of diagnosing a mobile computing device (150A ... 150N), an update of the software of a mobile computing device (150A ... 150N) can be carried out, including applications installed on it (including, but not limited to application 280 or at least one part of it, for example, associated with a specific component element of the device (150A ... 150N), etc.), drivers of the component elements of the device (150A ... 150N) , operating systems (or their components) of devices (150A ... 150N) or devices (140A ... 140N) and etc.
  • test results in the form of data (in particular, data sets )
  • at least on one user's computing device (140A ... 140N) in step 330 is carried out.
  • step 335 the results (data described in the framework of the present invention) of diagnostics (testing) are sent from the device (140A ... 140N) to the web server 1 10, which can be stored on at least one database server 120 in at least one data store, for example, in at least one database, and which can be displayed to at least one user through the described user interface (in particular, via a web interface, for example, in web browser 220 and / or website 260).
  • such a device (150A ... 150N) may have defects that do not allow diagnostics using the method described in the present invention of one or another functionality or component part of the device ( 150A ... 150N). For example, it may not be possible to perform (pass, execute, etc.) on the device (150A ... 150N) any test, for example, on the device (150A ... 150N) buttons are not working. In this case, navigation through slides (slide, in particular, using the LEFT and RIGHT commands described above) within the application 213 of the device (150A ... 150N) is carried out. It should be noted that if the touch screen does not work for the device ( 150A ... 150N), then navigation is used through control from the user's computing device (140A ... 140N).
  • application 280 by referring to the API of the operating system of the device (150A ... 150N) , determines the available number of components of the device (150A ... 150N) that can be tested (diagnostics of which can be carried out) in the application 280.
  • Such components of the device ( 150A ... 150N) can be: microphones, screen (s), speakers, sensors, cameras, flashes, etc.
  • application 280 can be diagnosed (tested) speakers of the mobile computing device (150A ... 150N).
  • Application 280 plays audio recordings on a mobile computing device (150A ... 150N) (for example, transport sound, speech, etc.).
  • a mobile computing device (150A ... 150N) On a mobile computing device (150A ... 150N), in the process or after playing an audio recording, application 280 displays a set of images, at least one of which corresponds to an audio recording. Further, the user of the mobile computing device (150A ... 150N) after (or during) listening to the audio recording should select the image corresponding to the played audio recording. If the image chosen by the user corresponds to the audio record heard by the user (reproduced for the user), then the test (diagnostics) of the device speakers (150A ... 150N) is considered to be the passed by device (150A ... 150N).
  • testing (diagnostics) of microphones of a mobile computing device is carried out.
  • the application reads (writes) the“white noise” by means of at least one microphone of the device (150A ... 150N).
  • application 280 records the result that the microphone is in good condition.
  • “white noise” is stationary noise, the spectral components of which are evenly distributed over the entire range of frequencies involved.
  • white noise has the same spectral power at all frequencies.
  • white noise is any noise (noises) which spectral density is the same (or slightly different) in the mentioned frequency range.
  • the microphones record the recording, so application 280 gets the result of detecting recording that the microphone is healthy, i.e.
  • testing (diagnostics) of microphones is carried out throughout the entire operation of application 213, and if no sounds were recorded by microphones, then microphones are considered (are) inoperable.
  • application 280 in the process of testing (diagnosing) microphones, application 280, by calling on the operating system API of a mobile computing device (150A ... 150N), sets the number of microphones for a specific device (150A ... 150N). Further, during the operation of the application 280, m particular, in the background, each available microphone measures the level of noise (which can be any sounds). When overcoming the threshold of a few hundredths of a decibel (fixed by the built-in system or microphone means), the microphone is considered to be tested (diagnosed) as working. In the particular case of the invention, the difference of a few hundredths decibels (in particular between the current level and (absolute) zero) allows the application 280 to establish the fact that the microphone (150 A ... 150N) receives sounds and that the microphone can transform them into electrical signals.
  • the application 280 performs diagnostics (check, testing) of a mobile computing device (150A ... 150N) for“hacking”, in particular, for the possibility of free access for the user and / or one of the applications installed on the device (150A ... 150N), to the file system of the mobile OS of the computing device (150A ... 150N), in particular, the presence of Root rights, jail break (jailbreak), etc.
  • Checking the device (150A ... 150N) for "hacking” can be done by installing a Windows service on the device (150A ... 150N) unsigned by the developer mobile application, as well as checking the presence on the mobile device of traces (facts) of installing applications for JailBreak .
  • application 280 or the user attempts to launch such an unsigned application.
  • the device (150A ... 150N) has access to the system files and therefore is “hacked”.
  • an attempt is made to access system directories (folders) by reading the contents (files and subdirectories) of such directories. If reading the contents of the mentioned directories can be carried out, then the result of the diagnosis in this case is the fact of“hacking” the device (150A ... 150N).
  • FIG. 4 shows an exemplary of mobile applications for diagnostics synchronization and installation service, in accordance with one implementation of the present invention.
  • service 210 obtains a list of connected mobile computing devices (150A ... 150N) to the user's computing device (140A ... 140N).
  • service 210 compares the mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N) with the list of mobile computing devices (I50A...150N) connected to the user's computing device (140A ... 140N) obtained at the previous iteration.
  • service 210 checks for the presence of a new mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N). If such a device (150A ... 150N) is detected (in the list of connected mobile computing devices), then such a device is added to the list of connected mobile computing devices (150A ... 150N) in step 430, after which the process goes to step 435.
  • step 435 the execution of the selected program flow is performed and then the service 210 performs step 425. If at step 425, service 210 did not detect the presence of a new mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N), then step 440 is performed. In step 440, service 210 checks for the presence of remote (disconnected from a personal computer) mobile computing devices (150A ... 150N). In case the remote devices (150 A ... 150N) were not detected by service 210, then return to step 415 is performed.
  • step 445 is executed.
  • a mobile computing device 150 A ... 150N
  • step 450 the selected execution flow of the program is interrupted and it returns to step 440.
  • FIG. 5 illustrates the execution of a dedicated program flow in accordance with one embodiment of the present invention.
  • step 515 service 210 attempts to obtain data about the manufacturer of the mobile computing device (150A ... 150N).
  • step 520 service 210 checks whether it was possible to obtain information about the manufacturer in step 515. If in step 520 it is determined that service 210 was unable to obtain information about the manufacturer, then in step 525 there is a delay and proceeds to step 515. If in step 520 it is determined that the service 210 was able to obtain data about the manufacturer, then in step 530 the connection data is sent. In step 535, it is checked whether it was possible to send data and, if not, then in step 580 the service 210 stops the selected program flow.
  • step 535 If in step 535 it is determined that service 210 was able to send data, then in step 540, service 210 retrieves the properties of a mobile computing device (150A ... 150N) through at least one data exchange module 230 (ADB, libimobiledevice).
  • ADB data exchange module 230
  • step 545 the data of mobile computing devices (150A ... 150N) is sent, and then in step 550, service 210 checks whether it was possible to send the mentioned data. If in step 550 it is determined that the service 210 failed to send data, then in step 580 the service 210 stops the selected program flow.
  • step 550 If in step 550 it is determined that the service 210 was able to send data, then in step 555 the application 280 is installed and then the diagnostics (testing) of mobile computing devices (150A ... 150N) is performed by means of the mobile application 280 and in step 560 the diagnostic (check, testing) results from devices (150A ... 150N) are awaited.
  • step 565 after receiving the diagnostic results, the service 210 sends commands and control data to the device (150A ... 150N), and then, in step 570, waits for a response from the device (150 A ... 150N) containing the results of the mobile diagnostic computing device. Further, in step 575, a delay is performed, after which it returns to step 565.
  • FIG. 6 shows an example of a general-purpose computer system that includes a multipurpose computing device in the form of a computer 20 or server, or a module of the system described in the present invention, including a processor 21, a system memory 22, and a system bus 23 that interconnects various system components, including system memory with a processor 21.
  • the system bus 23 may be any of various types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • the system memory includes a read-only memory (ROM) 24 and a random access memory (RAM) 25.
  • the ROM 24 stores the basic input / output system 26 (BIOS), consisting of the main routines that help exchange information between the elements inside the computer 20, for example, at the time of launch.
  • BIOS basic input / output system 26
  • Computer 20 may also include a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or removable optical disc 31 such as a compact disc, digital video disc and other optical media.
  • the hard disk drive 27, magnetic disk drive 28 and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33 and an optical drive interface 34, respectively.
  • Drives and their respective computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20.
  • the typical configuration described here uses a hard disk, a removable magnetic disk 29 and a removable optical disk 31
  • the technician will take into account that other types of computer-readable media that can store data that is accessible by computer can also be used in a typical operating environment such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), etc.
  • Various software modules, including the operating system 35 can be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25.
  • the computer 20 includes a file system 36 associated with or included in the operating system 35, one or more software applications 37, other program modules 38 and program data 39.
  • a user can enter commands and information into computer 20 using input devices such as a keyboard 40 and pointing device 42.
  • Other input devices may include a microphone, joystick, gamepad, satellite dish, scanner, or any other.
  • serial port interface 46 which is connected to the system bus, but can be connected via other interfaces, such as the parallel port, the game port, or the universal serial bus (USB).
  • a monitor 47 or another type of visual display device is also connected to the system bus 23 via an interface, for example, a video adapter 48.
  • personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
  • the computer 20 may operate in a networked environment through logical connections to one or more remote computers 49.
  • the remote computer (or computers) 49 may be another computer, a server, a router, a network PC, a peer device or another node of a single network, and usually includes most or all of the elements described above with respect to computer 20, although only storage device 50 is shown.
  • Logical connections include a local area network (LAN) 51 and a wide area network (WAN) 52.
  • LAN local area network
  • WAN wide area network
  • the computer 20 used in the LAN network environment is connected to the local network 51 via a network interface or adapter 53.
  • the computer 20 used in the WAN network environment typically uses a modem 54 or other means to establish communication with a global computer network 52, such as the Internet.
  • Modem 54 which could be either internal or external, is connected with the system bus 23 via the interface 46 of the serial port.
  • program modules, or parts thereof, as described in relation to computer 20 may be stored on a remote information storage device. It must be taken into account that the network connections shown are typical, and other means may be used to establish a communication link between the computers.
  • the information given in the description are examples that do not limit the scope of the present invention as defined by the formula. The person skilled in the art will understand that there may be other embodiments of the present invention consistent with the nature and scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Method and system for diagnosing mobile computing devices, which include: implementation of installation on a users computing device of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices; establishing a connection between mobile computing devices and user computing devices; implementation of the installation of a mobile application for diagnosing a mobile computing device on a mobile computing device through a mobile applications for diagnostics synchronization and installation service; implementation of diagnostics of a mobile computing device with the implementation of diagnostics of components of a mobile computing device; transferring diagnostic results to the users computing device through a mobile applications for diagnostics synchronization and installation service; sending diagnostic results to a web server, and saving data on the database server, and the stored diagnostic results are displayed to the user via the web interface in a web browser to determine the operability or malfunction of the mobile computing device.

Description

Method and system for diagnosing mobile computing devices
Technical field
The invention relates to the field of electrical engineering and information technology and computing, and more specifically to the diagnosis (testing) of computing devices, in particular, mobile computing devices such as smart phones, mobile (cell) phones, tablets, personal digital assistants (PDA) and others and can be used to diagnose various computing devices (user), in particular, mobile computing devices.
The level of technology
Currently known system and method for the diagnosis of a computing device (sec PCT / IL2016 / 050236, publ. No. WO2016139665 dated 09.09.2016), which describes the possibility of functioning (operation) of a computing device in various modes, wherein the diagnostic application can selectively perform one or more tests on said device, record the result of the test and perform some action based on result. This mode can be a safe mode, which includes the execution of only a part of the operating system and a diagnostic application. Diagnostics may include executing the said application and checking the performance of one or more resources of the computing device during the execution of the application.
The disadvantage of the mentioned method and system is the need to use safemode (protected) mode for diagnosing the mentioned devices, as well as the need to use root-rights, jail break (jailbreak) on such devices in order to implement the mentioned method and system. Also, the lack of the mentioned methods and system requires the mandatory reboot of the mentioned devices in order to carry out their diagnostics.
Also known is a method for automating functional testing for gesture-driven mobile applications (see US 9154611 B l, publ. 10/06/2015), which includes the launch of a functional testing program on the server. The program for functional testing (diagnostics) provides a graphical interface that allows the user to select a mobile application and a mobile computing device with a touch screen for user input. The mobile computing device is a remote device with respect to the server. The functional testing program launches a mobile application on a mobile computing device via a wireless network connection. The server receives precision elements for each gesture on the touch screen, where the precision elements are intercepted and transferred from the mobile computing device to the server during the execution of the mobile application, and the precision elements are then saved.
The disadvantage of this method is testing a mobile application and a touch screen, and testing is carried out on a server and not on a mobile computing device.
Also known method and system for automatic testing of mobile applications (see US 9152541 B1, publ. March 22, 2012), which describe various options for automatic testing and checking (verification) of mobile applications.
The disadvantage of this solution is testing only the mobile application without diagnosing the mobile device and its constituent elements, moreover, in order to place such a mobile application in the mobile application store.
The proposed system and method allows to overcome at least part of the above disadvantages or all of these disadvantages, as well as to realize the advantages of the present invention, as described in the framework of the present invention.
Subject of Invention
The technical result achieved by the invention consists in increasing the speed and quality of diagnostics of mobile computing devices and their constituent elements.
According to one embodiment, a method is proposed for diagnosing mobile computing devices, which includes: installing a mobile applications for diagnostics synchronization and installation service on at least one of the user's computing devices; implementation of installation on a user’s computing device of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices, which are diagnosed devices, for establishing communication between mobile computing devices and user’s computing devices; establishing a connection between mobile computing devices and user computing devices; implementing the installation of a mobile diagnostic application for a mobile computing device on at least one such mobile computing device, wherein the installation of said mobile diagnostic application is carried out by means of a mobile applications for diagnostics synchronization and installation service; a user launching said mobile diagnostic application on a mobile computing device, and at the time of launching a mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predetermined port, where the mentioned port is automatically selected from the available ports of mobile applications for diagnostics synchronization and installation service; diagnosing a mobile computing device, wherein diagnosing a mobile computing device includes the process of diagnosing the constituent elements of a mobile computing device; transferring diagnostic results to at least one user's computing device through a mobile applications for diagnostics synchronization and installation service that communicate with a mobile diagnostic application through a data exchange module; sending diagnostic results from the user's computing device to a web server, and the diagnostic results are stored in at least one database server in at least one data store in at least one database, and the stored diagnostic results also displayed to at least one user through a web interface in a web browser in order to determine the health or malfunction of the mobile computing device or at least one component element of the mobile computing device.
In one of the particular implementation options in the process of diagnosing a mobile computing device, the diagnostics of the functioning of the software installed on the mobile computing device, including the diagnostics of drivers for the constituent elements of the mobile computing device and applications, is performed.
In one of the particular implementation options, in the process of diagnosing a mobile computing device, the software of the mobile computing device is updated, including at least one application installed on it, or at least one part of such an application, and such mentioned part of application is associated with a specific component of a mobile computing device.
In one of the particular implementation options in the process of diagnosing a mobile computing device, the drivers of the constituent elements of the mobile computing device, operating systems or components of the operating systems of the mobile computing device and / or the user's computing device are updated. In one of the particular implementation options in the process of diagnosing a mobile computing device by referring to the operating system API of a mobile computing device, a mobile diagnostic application determines the available number of constituent elements of a mobile computing device, which are diagnosed using a mobile diagnostic application.
In one of the particular implementation options, the constituent elements of the mobile computing device are microphone (s), speaker (s), screen (s), sensor (s), camera (s) and flash (s).
In one of the particular implementation options, the speakers of the mobile computing device are diagnosed, and the audio recording is played on the mobile computing device, and a set of images is displayed on the mobile computing device during or after the audio recording is played, where at least one of such images corresponds to the audio recording, and then by the user of the mobile computing device after or during listening the record is used to select said image corresponding to the reproduced record, and if the user selected image corresponds to the reproduced record, the diagnostics of mobile computing device speaker is passed by such a mobile computing device.
In one of the particular implementation options, the microphones of the mobile computing device are diagnosed, and after launching the mobile diagnostic application during the diagnostic process, the mobile diagnostic application records "white noise" by means of at least one mobile computing device microphone and, if mobile diagnostic application has determined that the "white noise" was recorded, then the mobile diagnostic application captures that the microphone is operable.
In one of the particular implementation options in the mobile diagnostic application, the mobile computing device is diagnosed for“hacking”, and this diagnostics includes checking for the possibility of free access for the user and / or one of the applications installed on the mobile computing device to the file system of the mobile operating system in the mobile computing device, moreover, the aforementioned diagnostics is carried out by installing a Windows service on the mobile computing device of a mobile application, which is not signed by the developer, and during the attempt to run such unsigned application by the mobile application for diagnostics or by the user the check is performed in which if it is possible implementation of start of said unsigned application, the device is considered "hacked".
In one of the particular implementation options in the process of diagnosing a mobile computing device for "hacking" with a mobile application for diagnostics there is an attempt made to access system directories by reading the contents of files and subdirectories of such directories, and if the fact of the reading was detected then the diagnostics result would be the fact of "hacking" of a mobile computing device.
In one of the particular implementation options in the process of performing diagnostics on "hacking" a mobile computing device by using a mobile diagnostic application, an attempt is made to access the system files of the mobile computing device, and if reading the system files can be performed, then the result of the diagnostics is the fact of“hacking” the device of the mobile computing device, and in case reading the system files and the contents of the mentioned directories can not be performed, the diagnosis result to "hacking" mobile computing device is the fact that a mobile computing device has not been "hacked".
In one of the particular implementation options in the process of diagnosing a mobile computing device for“hacking” with a mobile diagnostic application, an attempt is made to install a mobile application that is not signed with a license to a mobile computing device, even if the mobile application or user failed to install such unsigned application , the result of the diagnosis is the fact that there is no“hacking” of the mobile computing device.
In one of the particular implementation options, after the mobile diagnostic application is installed using the mobile applications for diagnostics synchronization and installation service on at least one mobile computing device, mobile computing devices are automatically connected to at least one user computing device.
In one of the particular implementation options, the mobile applications for diagnostics synchronization and installation service for each connected mobile computing device to the user's computing device creates a dedicated program execution flow as part of the mobile applications for diagnostics synchronization and installation service, and the dedicated program execution flow performs at least , one attempt to organize a socket with a TCP server, and the mobile applications for diagnostics synchronization and installation service attempts to establish a connection between the mobile computing device and the user's computing device.
In one of the particular implementation options, in the case of the aforementioned successful creation of a dedicated program execution flow, two-way data exchange is performed between the mobile diagnostic application installed on the mobile computing device and the synchronization and installation service of mobile applications to diagnose the user's computing device, and the two-way data exchange is performed by means of a protocol that contains control words, message formation rules, rules for encryption of messages and methods for their analysis, where the operation of the mentioned protocol is carried out via the TCP / IP protocol stack, in particular, through the transport layer of such a protocol through the sockets created during the connection.
In one of the particular implementation options, with each of the simultaneously connected mobile computing devices to the user's computing devices, a dedicated flow of mobile applications for diagnostics synchronization and installation service is created, and the independent connection mentioned above is established with each of the simultaneously connected mobile computing devices at that the control of navigation in windows of mobile application for diagnostics is carried out through the mentioned connection.
In one of the particular implementation options, a dedicated program execution flow is performed after: the mobile applications for diagnostics synchronization and installation service receives a list of connected mobile computing devices; matching by the mobile applications for diagnostics synchronization and installation service of a connected mobile computing device with a list of connected mobile computing devices to at least one user computing device; checking by the the mobile applications for diagnostics synchronization and installation service of a new mobile computing device connected to the user's computing device, and if such a mobile computing device is found in the list of connected mobile computing devices, such a device is added to the list of connected mobile computing devices.
In one of the particular implementation options in the process of diagnostics, a mobile diagnostic application retrieves data about the manufacturer of a mobile computing device and obtains the properties of a mobile computing device. In one of the particular implementation options in the diagnostic process, commands are sent by the user's computing device to at least one mobile computing device and the user's computing device waits for a response from the mobile computing device containing the diagnostic results of the mobile computing device.
In one of the particular implementation options during the execution of a mobile diagnostic application on a mobile computing device, the mobile applications for diagnostics synchronization and installation service, with predetermined periodicity, sends encrypted data to a mobile computing device using one of the known encryption methods that the mobile diagnostic application uniquely interprets by using timestamps, a password stored on a web server, and using for protection against a possible implementation of the decoding of said data by third party users, services, applications and systems.
According to one implementation variant, a system for diagnosing mobile computing devices is proposed, it includes: at least one mobile computing device that is a diagnosable device on which the the following is being performed: installation of a mobile application for diagnosing a mobile computing device, and installing said mobile diagnostic application carried out through the mobile applications synchronization and installation service, and at that the launch of mobile diagnostic application on a mobile computing device, where at the time of launching a mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predetermined port, where the mentioned port is automatically selected from the available ports by the mobile applications for diagnostic synchronization and installation service, and diagnostics of a mobile computing device includes the process of making a diagnostics of constituent elements of the mobile computing device; at least one user computing device associated with at least one mobile computing device, at that on the user’s computing device the following is performed: installation of mobile applications for diagnostics synchronization and installation service; installation of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices to establish communication between the mobile computing device and the user's computing device; a data exchange module that transmits diagnostic results to at least one user's computing device through a mobile applications for diagnostics synchronization and installation service that communicate with a mobile diagnostic application; a web server to which diagnostics results are sent from the user's computing device; the database server, to which the diagnostic results are saved, which are transferred to the web server, at that the storage is performed on at least one data store, at least in one database, and the stored diagnostic results are also displayed at least one user through a web interface in a web browser to determine the operability or malfunction of the mobile computing device or at least one component of the mobile computing device.
The invention is illustrated by drawings:
FIG. 1 illustrates an example system for diagnosing mobile computing devices, in accordance with one embodiment of the present invention;
FIG. 2 illustrates an exemplary design of a diagnostic system for mobile computing devices, in accordance with one embodiment of the present invention;
FIG. 3 illustrates a block diagram of an exemplary embodiment of the present invention;
FIG. 4 illustrates an exemplary of mobile applications for diagnostics synchronization and installation service in accordance with one implementation of the present invention.
FIG. 5 illustrates the execution of a dedicated program flow in accordance with one embodiment of the present invention.
FIG. 6 illustrates an example of a general-purpose computer system.
Description of embodiments of the invention
The objects and features of the present invention, methods for achieving these objects and features will become apparent by referring to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it may be embodied in various forms. The entity described in the description is nothing but specific details provided to assist a person skilled in the technical field in an exhaustive understanding of the invention, and the present invention is defined only in the scope of the appended claims. Used in the present description of the invention, the terms "component", "element", "system", "module", "part", in particular, "constituent part", and the like are intended (used) to refer to computer entities (entities / objects related computer, computing entities), which may be hardware / equipment (for example, a device, instrument, apparatus, equipment, device component, in particular, a processor, microprocessor, printed circuit board, etc ), software (for example, executable program code, compiled application, software module, part of the software and / or code, etc.) or firmware. For example, a component can be a process running on a processor, a processor, an object, an executable file, a program, a function, a method, a library, a subprogram, and / or a computing device (for example, a microcomputer or computer) or a combination of software or hardware. By way of illustration: as an application running on a server can be a component or a module, or a server can be a component or module. At least one component can be (located) inside the process. The component may be located on a single computing device (for example, a computer) and / or may be distributed between two or more computing devices. For example, in the particular case an application (component), can be represented by a server component (server part) and a client component (client part). In the particular case, the client component is installed on at least one computing device, and the server component is installed on the second computing device, from which, in the particular case, the first computing device (and / or its component components / parts.
In FIG. 1 showed an exemplary system for diagnosing mobile computing devices, in accordance with one embodiment of the present invention.
A system that implements a method (or at least one part of a method) described within the framework of the present invention, an exemplary embodiment of which is shown in FIG. 1 , contains at least one web server 1 10 connected to at least one database server 120. The web server 1 10 may be associated with at least one user computing device (client computing device) 140A, 140B ... 140N., For example, via the Internet. Such user computing devices (140A, 140B ... 140N) can be various (including digital, analog, combined, mechanical, etc.) devices, in particular, but not limited to, electronic devices. For example, such user computing devices (140A, 140B ... 140N) can be personal computers, electronic computers (computers), laptops, servers, workstations, all- in-one computers, computer stands, desktop computers, test benches, computer demonstration boards, and etc.
Depicted in FIG. 1 system can also include at least one mobile computing device (150 A, 150Б, 150B, 150Г, 150д 150E, 150Ж , 150З... 150N), a diagnosed (tested) mobile computing device, and which can be connected at least with one user computing device (140 A, 140B ... 140N). It should be noted that in the particular case of the implementation of the present invention, a mobile computing device (150A, 150B, 150C, 150D, 150E, 150F, 150G, 150H ... 150N) can be connected to the user's computing device (140A, 140B ... 140N) via the USD interface or by any other type (type, means, etc.) of communication, as described in more detail below. A mobile computing device (150A ... 150N), diagnosed (mobile computing) device may be such a mobile device, such as a telephone (mobile, cellular, etc ), tablet, smart phone, etc. It should be noted that at least one operating system can be installed on a mobile computing device (150 A ... 150N), for example, a mobile operating system (mobile OS), in particular, Android, iOS.
It is worth noting that a particular case of a user is at least one administrator (operator, client, etc ), i.e., in a particular case, a person interested in diagnosing mobile computing devices (150A ... 150N) or performing diagnostics of mobile computing devices (150A ... 150N), in particular, performing testing of devices (150A ... 150N). It should be noted that the user can perform diagnostics (testing) of at least one functionality of a mobile computing device (150A ... 150N), for example, through interaction with such a device (150A ... 150N). In the particular case, the interaction is pressing the buttons (keys) of the device (150A ... 150N), interaction with the touch screen of such a device (150A ... 150N), listening to audio recordings played on the device (150A ... 150N), etc., in more detail described below. Also, in a particular case, the user is also an administrator (operator, client, etc ), i.e., in a particular case, a person interested in working or maintaining the equipment, for example, web server 110 and / or server data 120, user computing devices (140A ... 140N), data storages, communication between components (modules) of the described system, an exemplary version of which is shown in FIG. 1. Also, a user can install a mobile application for diagnostic (of mobile computing devices (150A ... 150N)) 280 on devices (150A ... 150N), as well as install services, for example, mobile applications for diagnostics synchronization and installation service 210 on user's computing device (140A ... 140N). It is worth noting that indicated in FIG. 1 components of the described system (including software and / or hardware components) may be an integral part of the described system and / or may be connected to the said system. For example, the components of the system shown in FIG.
1 can be connected by one or another currently known or invented in the future directly (for example, by means of terminals and / or wires, soldering, riveting, etc.) or indirectly (by means of intermediate devices, including various kinds of converters, in particular, information converters / converters, including data, in analog form, digital form or in any other known form of information). It is worth noting that the components of the system depicted in FIG. 1 can be interconnected via wired communication, wireless communication, through various types of connectors, wires, etc.
It is worth noting that the components of the system depicted in FIG. 1 can be interconnected (and with any other components, devices and services capable of receiving information from the components of the described system and / or transmitting data to the described system components) through various types of communication, for example, via a local area network (LAN ), Internet (130), (by means of) mobile communication, satellite communication and / or by means of any other type or method of wired communication (for example, through a USB interface, an RS-232 / COM interface, etc.) and / or wireless communication, for example, Bluetooth, Wi-Fi, mobile cellular (GSM), including 3G, 4G, LTE, in particular, in the 850/900/1800/1900 MHz bands, satellite communication, trunking communication and data transmission channels ultra-low power, forming complex wireless networks with a mesh topology (ZigBee), etc.
It should be noted that at least one part of the method described in the framework of the present invention (or the whole method) can be implemented on the web server 110 and / or on the user's computing device (140A ... 140N), and / or on a mobile computing device (150A ... 150N). It is worth noting that the connection between the web server 1 10 and the user's computing devices (140A ... 140N) and / or the database server 120, and / or between the user's computing devices (140A ... 140N) and the database server 120 can be implemented through at least one data transfer protocol, including a network protocol, for example, TCP / IP, HTTP / HTTPs (Hyper Text Transfer Protocol), FTP (File Transfer Protocol), POP3 (Post Office Protocol, standard mail connection protocol), SMTP (Simple Mail Transfer Protocol, a protocol that defines a set of rules for sending mail), TELNET (Remote Access Protocol), XMPP (Extensible Messaging and Presence Protocol - an extensible messaging and presence information protocol, formerly known as Jabber— open, XML based protocol for instant messaging and presence information in near real-time mode), DTN, etc.
The above web server 110 can be implemented by a specialized computing device (in particular, a computer) and / or specialized equipment to perform service software on it, including services of various tasks.
It is worth noting that the database server 120 maintains and manages at least one database and is responsible for the integrity and safety of the data, and also provides input-output operations when the client accesses the information. It is also worth noting that the mentioned database can be located on at least one data storage. In the particular case, the data storage is a device for storing information / data and can be implemented by at least one hard disk drive (HDD, hard (magnetic) disk drive), a solid-state drive (SSD, solid-state drive, hybrid hard disk drive (SSHD, solid-state hybrid drive), storage area network (SAN, storage area network), network storage system / network storage (NAS, Network Attached Storage) and / or any other device that allows at least recording and / or storing data. The data in the said data storages can be stored in any known format, for example, in a database (DB), for example, in the form of at least one table or a set of related or unrelated database tables. It should be noted that at least one mentioned database can be a hierarchical, object, object-oriented, object-relational, relational, network and / or functional database, each of which can be centralized, concentrated, distributed, inhomogeneous, homogeneous, fragmented / partitioned, replicated, spatial, temporal, spatial-temporal, cyclic, super-large database, etc., at that various database management systems can be used to manage, create and use databases (DBMS).
Also, the data in the said data stores can be stored in at least one file, in a particular case, in the form of a text file, or the data can be stored in any at least one other data / information storage format currently known or data format invented later.
In the particular case of the implementation of the present invention, at least one part of the described method and system may be software or part of the application. Also, at least one part of the described method and system can be at least one service implemented, for example, program code, script / scripts, and also be executable components of various systems (in particular, computer systems) and subsystems (for example, input subsystems, output subsystems, storage subsystems, in particular, disk subsystems, data transfer subsystems, etc.).
It should be noted that the above-mentioned means of the program components of the application may include execution of program code, application executable code, machine code, etc., in particular, in compiled and / or non-compiled form, for example, in the form of javascript (java -scripts), as well as in the form of one of the intermediate languages (programming), for example, the intermediate language CIL, Common Intermediate Language.
In FIG. 2 shows an exemplary diagram of a diagnostic system for mobile computing devices, in accordance with one embodiment of the present invention. In the particular case of the implementation of the present invention on the user's computing device (140A ... 140N) the mobile applications for diagnostics synchronization and installation service 210 is installed. In the particular case, the service 210 allows the installation of mobile applications for diagnostics 280 to mobile computing devices (I50A ... 150N). The algorithm of the mobile applications for diagnostics synchronization and installation service 210 is shown in more detail in FIG. 4. In the particular case of the implementation of the present invention on the user's computing device (140 A ... 140N) a web browser (browser, web browser) 220 could be installed, for example, Internet Explorer, Mozilla Firefox, Google Chrome, Safari, Opera, Microsoft Edge and etc. The web browser 220 is used to provide the user with an interface (in particular, a web interface), in a particular case, being a user interface (user interface) for displaying HTML, content to the user.
It should be noted that the execution of service 210 in the particular case is carried out under the control of the Windows operating system (OS), i.e. is a Win service (Windows service).
It is also worth noting that the service 210 communicates with the application 280 through the data exchange module 230, which in the particular case is“Android debug bridge” (ADB) or“LibiMobileDevice iOS Data Bridge”. In the particular case, data exchange module 230 allows data exchange between service 210 and application 280, and such data are parameters, serial numbers of mobile computing devices (150A ... 150N), other identification data, the ability to control mobile computing devices (150 A. ..150N) (functions of such mobile computing devices), etc., as described in more detail in the framework of the present invention.
Also, service 210 (which is a special case of a Windows application running (executed) in Service mode (service) synchronizes mobile computing devices (150A ... 150N), in particular, data between service 210 on a computing device (150A ... 150N), and data stored in at least one database, database server 120, through a web service 250. In the particular case of the present invention, a service on a mobile computing device (150A ... 150N) transfers data such as parameters (characteristics), serial numbers, IMEI, battery statuses (batteries, accumulators etc.) to a user's computing device (client computing device) 140 of at least one mobile computing device (150A ... 150N).
In the particular case of the implementation of the present invention, the data transfer between the service 210 and mobile computing devices (150A ... 150N) is carried out through a USB connection between such services and devices.
It should be noted that the web server 110 may include a web service 250 installed on it, which in the particular case implements and publishes a set of methods by which data is transmitted (in particular, data synchronization) between the user's computing device (client computing device) 140 and the web server 1 10, where the web service 250 includes a set of methods, a database, and a (graphical) user interface. At the time of launching the mobile application for diagnostics 280, application 280 organizes a TCP - server (from the English TCP, transmission control protocol) that waits for the user's computing devices (140A ... 140N) to be connected to the predetermined port by the developers of the described method and system, or at least one user, and the said port can also be automatically selected (and one of the available ports can be selected), for example, by service 210. Thus, after the application 280 is installed using service 210, at least on one mobile computing device (150A ... 150N), such mobile computing devices (150A ... 150N) are automatically connected to at least one user computing device (140 A ... 140N).
Next, service 210 for each connected mobile computing device (150 A ... 150N) to the user's computing device (140A ... 140N) organizes (creates) a dedicated Device Worker Thread - as part of service 210. In the particular case, each dedicated program execution thread makes at least one attempt to organize a socket (Socket is a software interface to provide data exchange between processes, and such processes can be executed as on the same computing device during the exchange, or on various computing devices connected to each other) with a TCP server (in the particular case, which is a mobile application), in a particular case, service 210 attempts to establish a connection between the mobile computing device (150A ... 150N) and the user's computing device (140A ... 140N). It should be noted that in the particular case a dedicated program flow (a dedicated thread, a dedicated queue, a separate queue, a separate“branch”) retrieves data from at least one mobile computing device (150A ... 150N) that is diagnosed device, and also performs data processing, and transferring the received data from the mobile computing device (150A ... 150N) to the user's computing device (140A ... 140N), as demonstrated in FIG. 5.
Upon successful establishment of the above connection (in particular, in the case of successful creation of a dedicated thread), two-way data exchange is performed between the application 280 installed on the mobile computing device (150A ... 150N) and the user's computing device (140 A ... 140N), particular service 210. It should be noted that the mentioned two-way data exchange is carried out by means of a protocol, which, in the particular case, contains control words, message generation rules, message encryption rules and methods for their analysis, which are described in more detail below. The operation of the mentioned protocol is carried out through the TCP / IP protocol stack, in particular through the transport layer of such a protocol through the mentioned sockets created during the connection process. In the particular case, the implementation of the present invention regardless of the number of connected, in particular, connected, (simultaneously) mobile computing devices (150 A ... 150N) to the user's computing devices (140 A ... 140N), with each of which (mobile computing devices (150A ... 150N)) creation (establishment) of a dedicated service flow 210 is carried out and with each of which the aforementioned (independent) connection is established. Navigation control (in particular, navigation methods) in the windows (slides) of the mobile application 280 is controlled by means of the above connection. In the particular case, by transmitting at least one command of service 210 by using the described protocol, application 280 on the mobile computing device (150A ... 150N) performs navigation ("understands" what needs to be done). In the particular case, said two-way data exchange allows service 210 to receive data via said established connection (link). These data are the results of the execution of commands by mobile computing devices (150A ... 150N), and these commands can be different commands and can vary depending on (types) of mobile computing devices (150A ... 150N), (type) of performed diagnostics of mobile computing devices (150 A ... 150N), settings of the computing device of the user 140A ... 140N, etc., moreover, such commands may include, for example, the command "LEFT”, which moves the screen of the mobile computing device ( 150A ... 150N) to the left (transition (as described below) to the previous screen); “RIGHT” command, which moves the screen of the mobile computing device (150A ... 150N) to the right (goes to the next screen), the NORMAL, ERASE, INFO commands that control the operating modes of the mobile computing device (150 A ... 150N), as well as such data are the results of the work of application 280).
During the execution of application 280 on a mobile computing device (150A ... 150N), service 210 with a predetermined (specified, for example, by user of a user's computing device 140A ... 140N) frequency (for example, 1 -5 seconds) sends to mobile computing device (150A ... 150N) of data (which can be encrypted, for example, with one of the known methods or encryption methods), in particular, the character set, which the application 280 can (unambiguously) interpret (including, decrypt), in particular through the use of timestamps, a password (which, in a particular case, is stored on the web server 110, and is used to protect against the possible decryption of the described data by third-party users (services, applications, systems, etc.) of the described system and the method, in particular, by fraudsters, and encryption (for example, if the transfer of said data (data exchange) is carried out in an encrypted form), as described in more detail below
In case of violation of the expected hash sum, absence of messages from the user's computing device (140A ... 140N) for a predetermined (for example, constants in application 280) period of time (for example, within 5 seconds), application 280 stops its operation and makes a request (for example, by displaying a message on a mobile computing device (150A ... 150N)) to the user to perform reconnecting (communicating) with the user's computing device (140A ... 140N), which in the particular case allows for protection application 280 from unauthorized use without a user's computing device (140A ... 140N), in which the service 210 is executed. In the particular case of the implementation of the present invention, the mobile application 280, based on the above (current) timestamp and password, calculates the said hash sum. Also, the mobile application 280 receives the hash sum calculated on the user's computing device 140 A ... 140N. If the mentioned hash-sums do not coincide, then at least one computing device or application, for example, the computing device of user 140A ... 140N, there is registered as a violation of the expected hash-sum.
Thus, the protocol described above can be implemented by a two-way data exchange module (which is part of a mobile application 280) between application 280 installed on a mobile computing device (150A ... 150N) and service 210. In the particular case of the implementation of the present invention, the mentioned module of two-way data exchange between the application 280 installed on the mobile computing device (150A ... 150N) and the service 210 is a module for controlling the connection (for example, via USB) and receiving / sending data (in particular, as described above for determining the hash sum violation) from the user's computing device (140 A ... 140N). In the particular case of the implementation of the present invention, said connection control module performs at least two operations (functions), for example:
- control of the connection;
- data reception / transmission from / to the user's computing device (140A ... 140N), to which the mobile computing device is connected (with which the connection is established) (150 A ... 150N).
In the particular case of the implementation of the present invention, when the application 280 is started, a separate thread of a TCP server is started, it listens on a certain port mapped on USB and accepts the connection of the user's computing device (140A ... 140N). So, for example, when launching a mobile application for diagnostics 280 on a mobile computing device (150A ... 150N), the mobile application for diagnostics 280 executes the code, and a part of this code implements a TCP server, which functions in standby mode. The user's computing device (140 A ... 140N), on which the Windows application (service) is running, performs mapping of the local ports of the user's computing device (140A ... 140N) to the ports of USB-connected mobile computing devices (150A ... 150N). Further, a Windows application for each mobile computing device (150A ... 150N) establishes a connection to TCP servers organized on mobile computing devices (150A ... 150N).
In the particular case of the implementation of the present invention, the port number of such a connection may be the port number "2345". In the particular case of the implementation of the present invention after starting the application 280 for a predetermined time (for example, within 10 seconds) a connection is established between the mobile computing device (150A ... 150N), for example, through the application 280, and the user's computing device (140A. ..140N), for example, by the service 210. If there is no connection, the application 280 suspends its execution ("work") and notifies the user about the need to establish the connection. User notification can be displayed on the screen of a mobile computing device (150A ... 150N) and / or on the user's computing device (140 A ... 140N), for example, in the form "Establish a connection". In the case of a successful connection, the execution of application 280 continues.
Further, the user's computing device (140A ... 140N), with a predetermined interval (for example, once every 2 seconds) transmits to a mobile computing device (150 A ... 150N), in particular, to a TCP server, data set, for example, as a string. It should be noted that the mentioned data, in particular, in the form of a string, transmitted from the user's computing device (140A ... 140N) to a mobile computing device ( 150A ... 150N), can have the following format: [DD-MM-YYYY HH:MM:SS]: HASH: COMMAND, where
- [DD-MM-YYYY HH: MM: SS] - the date and time of the user's computing device (140A ... 140N);
- HASH is a hash sum, for example, MD5, obtained (calculated using the hash function) from the string“[Date Time]: Password” (the password is stored in a constant in the data of mobile applications 213, the password is known to the user's computing device 140 and mobile application 213);
- COMMAND - Team (EMPTY - ignoring this command, LEFT - transition (Slide, Sliding) by means of application 213 to the previous screen of the mobile computing device (150A ... 150N), RIGHT - is carried out transfer by means of application 213 to the next screen of a mobile computing device (150A ... 150N);
- pairs separator;
«:» - Name / Value separator.
In the particular case, the application 280 performs the calculation of the hash sum from the string:“[DD-MM-YYYY HH: MM: SS]” +“Password”. If the calculated hash sum is not equal to the HASH value received from the user's computing device (140A ... 140N), then application 280 stops (application 280 stops working), otherwise application 280 continues to function (continues its work).
Next, the mobile computing device (150A ... 150N), in particular, the TCP server, analyzes the data and performs:
- continuation of the execution of application 280;
- execution of the navigation command (the COMMAND command mentioned above, which allows switching to the previous or next screen of the mobile computing device (150 A ... 150N)).
In the particular case of the implementation of the present invention, at least one of the above-mentioned method is performed by at least one computing device (for example, a user computing device (140A ... 140N) and / or a mobile computing device (150A ... 150N), and / or web server 1 10), in particular, software, service, etc., for example, mobile application 280 and / or service 210, and at least one of the above command initializes execution, at least one of the methods mentioned above.
If there is no such data from the user's computing device (140 A ... 140N) during several intervals (for example, 2-3 intervals), the application 280 completes its work.
When testing is completed (the application 280 sends to the user’s computing device (140A ... 140N) data on (results) diagnostics (in particular, a test) of the mobile computing device (150A ... 150N), for example, the name and / or identification data such a mobile computing device (150A ... 150N) and the state, in particular, whether this mobile computing device (150A ... 150N) works or does not work, or the state of at least one component of such a mobile computing device (150 A. ..150N), for example, speaker, microphone, USB-module, GSM-module, different buttons, sensors, cameras, etc., in particular, working or not working this particular part of such a mobile computing device (150A ... 150N). It should be noted that such data, in particular, in the form of a string, transmitted from a mobile computing device (150 A ... 150N), in particular from a TCP server, to a user's computing device (140A ... 140N), can have the following format:
ID: SN; TYPE: TypeValue, PropNamel : Valuel; PropName2: Value2; PropNameX; ValueX, where
- ID: SN ID is identifier of the mobile computing device (150A ... 150N), SN - serial number of the mobile computing device ( 150A ... 150N) ,; - TYPE: TypeValue TYPE as it is, TypeValue - one of two values:“PROP” are properties (IMEI, etc.) or“TEST” - test results;
- PropNamel : Value 1 PropName - Property name (IMEI or test name), Value - value;
«;» - pairs separator;
«:» - Name / Value separator.
In FIG. 3 is a block diagram of an exemplary embodiment of the present invention. In step 315, the user installs service 210 on at least one of the user's computing devices (140A ... 140N). Also, on at least one user's computing device (140A...140N) the user installs (necessary) drivers, in particular, from manufacturers of mobile operating systems and manufacturers of mobile computing devices (150A...150N), for example, from Apple and Android to establish a connection (link) between mobile computing devices (150 A ... 150N) and user computing devices (140 A ... 140N).
Then, in step 317, a connection (link) is established between mobile computing devices (I50A ... 150N) and user computing devices (140 A ... 140N).
Next, in step 320, service 210 installs application 280 on mobile computing devices (150 A ... 150N).
After application 280 is installed (at step 320), at least on one mobile computing device (150A ... 150N), at step 323, the user launches application 280 on the device (150A ... 150N).
Further, in step 325, the device (150A ... 150N) is diagnosed (tested), in particular by means of a mobile application for diagnostics 280 and by the user. In the particular case, the process of diagnosing a mobile computing device (150A ... 150N) is carried out, in particular, the process of checking (diagnosing, testing) the constituent elements of a mobile computing device (150 A ... 150N) is carried out. In the particular case of the implementation of the present invention, the process of testing (checking, diagnosing) the functioning (in particular, operability) of at least one component of the mobile computing device (150A ... 150N) is carried out. It is also worth noting that in the process of diagnostics (testing, verification) of a mobile computing device (150A ... 150N), diagnostics of the functioning of software installed on a mobile computing device (150A ... 150N), including diagnostics of drivers for constituent components of mobile computing device (150A ... 150N), applications, including application 280 can be performed. It is also worth noting that in the process of diagnosing a mobile computing device (150A ... 150N), an update of the software of a mobile computing device (150A ... 150N) can be carried out, including applications installed on it (including, but not limited to application 280 or at least one part of it, for example, associated with a specific component element of the device (150A ... 150N), etc.), drivers of the component elements of the device (150A ... 150N) , operating systems (or their components) of devices (150A ... 150N) or devices (140A ... 140N) and etc.
Further, in the particular case, upon completion (or in the process of implementation) of diagnostics of at least one mobile computing device (150A ... 150N), sending (transmitting) test results (diagnostics) in the form of data (in particular, data sets ), at least on one user's computing device (140A ... 140N) in step 330 is carried out.
Next, in step 335, the results (data described in the framework of the present invention) of diagnostics (testing) are sent from the device (140A ... 140N) to the web server 1 10, which can be stored on at least one database server 120 in at least one data store, for example, in at least one database, and which can be displayed to at least one user through the described user interface (in particular, via a web interface, for example, in web browser 220 and / or website 260).
It is worth noting that when performing diagnostics of a mobile computing device (150A ... 150N) , such a device (150A ... 150N) may have defects that do not allow diagnostics using the method described in the present invention of one or another functionality or component part of the device ( 150A ... 150N). For example, it may not be possible to perform (pass, execute, etc.) on the device (150A ... 150N) any test, for example, on the device (150A ... 150N) buttons are not working. In this case, navigation through slides (slide, in particular, using the LEFT and RIGHT commands described above) within the application 213 of the device (150A ... 150N) is carried out. It should be noted that if the touch screen does not work for the device ( 150A ... 150N), then navigation is used through control from the user's computing device (140A ... 140N).
In the particular case of the implementation of the present invention, application 280, by referring to the API of the operating system of the device (150A ... 150N) , determines the available number of components of the device (150A ... 150N) that can be tested (diagnostics of which can be carried out) in the application 280. Such components of the device ( 150A ... 150N) can be: microphones, screen (s), speakers, sensors, cameras, flashes, etc.
In the particular case of the implementation of the present invention in the application 280 can be diagnosed (tested) speakers of the mobile computing device (150A ... 150N). Application 280 plays audio recordings on a mobile computing device (150A ... 150N) (for example, transport sound, speech, etc.). On a mobile computing device (150A ... 150N), in the process or after playing an audio recording, application 280 displays a set of images, at least one of which corresponds to an audio recording. Further, the user of the mobile computing device (150A ... 150N) after (or during) listening to the audio recording should select the image corresponding to the played audio recording. If the image chosen by the user corresponds to the audio record heard by the user (reproduced for the user), then the test (diagnostics) of the device speakers (150A ... 150N) is considered to be the passed by device (150A ... 150N).
In the particular case of the implementation of the present invention in application 280, testing (diagnostics) of microphones of a mobile computing device (150A ... 150N) is carried out. After starting the application 280, when the tests start (during the diagnostics process), the application reads (writes) the“white noise” by means of at least one microphone of the device (150A ... 150N). If application 280 has determined (set, detected) that the“white noise” has been recorded, then application 280 records the result that the microphone is in good condition. In the particular case, “white noise” is stationary noise, the spectral components of which are evenly distributed over the entire range of frequencies involved. In the particular case "white noise" has the same spectral power at all frequencies. Also, "white noise" is any noise (noises) which spectral density is the same (or slightly different) in the mentioned frequency range.
Also, in the particular case, when“white noise” was not recorded during testing (diagnostics), but when making sounds during testing of the speakers, the microphones record the recording, so application 280 gets the result of detecting recording that the microphone is healthy, i.e. In the particular case, testing (diagnostics) of microphones is carried out throughout the entire operation of application 213, and if no sounds were recorded by microphones, then microphones are considered (are) inoperable.
It is worth noting that if at the time of passing the speaker tests in application 280 using the methods described above, the result of the microphones operation was not recorded by the application 280, then the user in application 280 will be able to start recording in which he can record (record, including standard means of a mobile computing device (150A ... 150N)) on the microphone (s) general sounds. If after the recording, application 280 does not record the presence of recording (sounds) on the microphone (s), then the application 280 records the result that the microphone is not working.
In the particular case, in the process of testing (diagnosing) microphones, application 280, by calling on the operating system API of a mobile computing device (150A ... 150N), sets the number of microphones for a specific device (150A ... 150N). Further, during the operation of the application 280, m particular, in the background, each available microphone measures the level of noise (which can be any sounds). When overcoming the threshold of a few hundredths of a decibel (fixed by the built-in system or microphone means), the microphone is considered to be tested (diagnosed) as working. In the particular case of the invention, the difference of a few hundredths decibels (in particular between the current level and (absolute) zero) allows the application 280 to establish the fact that the microphone (150 A ... 150N) receives sounds and that the microphone can transform them into electrical signals.
In the particular case of the implementation of the present invention, the application 280 performs diagnostics (check, testing) of a mobile computing device (150A ... 150N) for“hacking”, in particular, for the possibility of free access for the user and / or one of the applications installed on the device (150A ... 150N), to the file system of the mobile OS of the computing device (150A ... 150N), in particular, the presence of Root rights, jail break (jailbreak), etc. Checking the device (150A ... 150N) for "hacking" can be done by installing a Windows service on the device (150A ... 150N) unsigned by the developer mobile application, as well as checking the presence on the mobile device of traces (facts) of installing applications for JailBreak . Then application 280 or the user (including through application 280) attempts to launch such an unsigned application. In the event that the application 280 or the user manages to launch such an unsigned application, the device (150A ... 150N) has access to the system files and therefore is “hacked”. In particular, in the process of diagnosing a device (150A ... 150N) through an application 280, an attempt is made to access system directories (folders) by reading the contents (files and subdirectories) of such directories. If reading the contents of the mentioned directories can be carried out, then the result of the diagnosis in this case is the fact of“hacking” the device (150A ... 150N). In particular, in the process of diagnosing a “hacking” device (150 A ... 150N), through application 280, an attempt is made to access the system files of the device (150A ... 150N). If the reading of system files can be carried out, then the result of the diagnosis in this case is the fact of“hacking” the device (150A ... 150N). If the reading of the system files and the contents of the mentioned directories cannot be carried out, then the result of the diagnostics on the“hacking” of the device (150A ... 150N) is the fact that the device (150A ... 150N) was not "hacked", in a particular case, the device (150A ... 150N) did not go through the procedure of issuing Root privileges to the user. In the particular case of the implementation of the present invention when performing diagnostics on hacking devices (150A ... 150N) running mobile OS "iOS", in particular, on JailBreak, an attempt is made to install a mobile application not signed by the Enterprise license on device (150A ... 150N ). If the application 280 or the user failed to install such an unsigned application, then the diagnostic result is the fact that there is no“hacking” of the device (150A ... 150N), in particular, the absence of JailBreak on such a device.
In FIG. 4 shows an exemplary of mobile applications for diagnostics synchronization and installation service, in accordance with one implementation of the present invention.
In step 415, service 210 obtains a list of connected mobile computing devices (150A ... 150N) to the user's computing device (140A ... 140N).
Next, at step 420, service 210 compares the mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N) with the list of mobile computing devices (I50A...150N) connected to the user's computing device (140A ... 140N) obtained at the previous iteration.
Then, in step 425, service 210 checks for the presence of a new mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N). If such a device (150A ... 150N) is detected (in the list of connected mobile computing devices), then such a device is added to the list of connected mobile computing devices (150A ... 150N) in step 430, after which the process goes to step 435.
In step 435, the execution of the selected program flow is performed and then the service 210 performs step 425. If at step 425, service 210 did not detect the presence of a new mobile computing device (150A ... 150N) connected to the user's computing device (140A ... 140N), then step 440 is performed. In step 440, service 210 checks for the presence of remote (disconnected from a personal computer) mobile computing devices (150A ... 150N). In case the remote devices (150 A ... 150N) were not detected by service 210, then return to step 415 is performed.
If the service 210 has detected a remote (disconnected from the PC) mobile computing device (150A ... 150N), then step 445 is executed. In step 445, such a mobile computing device (150 A ... 150N) is removed from the list of connected mobile computing devices, and in step 450, the selected execution flow of the program is interrupted and it returns to step 440.
FIG. 5 illustrates the execution of a dedicated program flow in accordance with one embodiment of the present invention.
In step 515, service 210 attempts to obtain data about the manufacturer of the mobile computing device (150A ... 150N). Next, in step 520, service 210 checks whether it was possible to obtain information about the manufacturer in step 515. If in step 520 it is determined that service 210 was unable to obtain information about the manufacturer, then in step 525 there is a delay and proceeds to step 515. If in step 520 it is determined that the service 210 was able to obtain data about the manufacturer, then in step 530 the connection data is sent. In step 535, it is checked whether it was possible to send data and, if not, then in step 580 the service 210 stops the selected program flow. If in step 535 it is determined that service 210 was able to send data, then in step 540, service 210 retrieves the properties of a mobile computing device (150A ... 150N) through at least one data exchange module 230 (ADB, libimobiledevice).
Next, in step 545, the data of mobile computing devices (150A ... 150N) is sent, and then in step 550, service 210 checks whether it was possible to send the mentioned data. If in step 550 it is determined that the service 210 failed to send data, then in step 580 the service 210 stops the selected program flow.
If in step 550 it is determined that the service 210 was able to send data, then in step 555 the application 280 is installed and then the diagnostics (testing) of mobile computing devices (150A ... 150N) is performed by means of the mobile application 280 and in step 560 the diagnostic (check, testing) results from devices (150A ... 150N) are awaited. Next, in step 565, after receiving the diagnostic results, the service 210 sends commands and control data to the device (150A ... 150N), and then, in step 570, waits for a response from the device (150 A ... 150N) containing the results of the mobile diagnostic computing device. Further, in step 575, a delay is performed, after which it returns to step 565.
in FIG. 6 shows an example of a general-purpose computer system that includes a multipurpose computing device in the form of a computer 20 or server, or a module of the system described in the present invention, including a processor 21, a system memory 22, and a system bus 23 that interconnects various system components, including system memory with a processor 21.
The system bus 23 may be any of various types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes a read-only memory (ROM) 24 and a random access memory (RAM) 25. The ROM 24 stores the basic input / output system 26 (BIOS), consisting of the main routines that help exchange information between the elements inside the computer 20, for example, at the time of launch.
Computer 20 may also include a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or removable optical disc 31 such as a compact disc, digital video disc and other optical media. The hard disk drive 27, magnetic disk drive 28 and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33 and an optical drive interface 34, respectively. Drives and their respective computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20.
Although the typical configuration described here uses a hard disk, a removable magnetic disk 29 and a removable optical disk 31 , the technician will take into account that other types of computer-readable media that can store data that is accessible by computer can also be used in a typical operating environment such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), etc. Various software modules, including the operating system 35, can be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25. The computer 20 includes a file system 36 associated with or included in the operating system 35, one or more software applications 37, other program modules 38 and program data 39. A user can enter commands and information into computer 20 using input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, gamepad, satellite dish, scanner, or any other.
These and other input devices are often connected to the processor 21 via the serial port interface 46, which is connected to the system bus, but can be connected via other interfaces, such as the parallel port, the game port, or the universal serial bus (USB). A monitor 47 or another type of visual display device is also connected to the system bus 23 via an interface, for example, a video adapter 48. In addition to monitor 47, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 20 may operate in a networked environment through logical connections to one or more remote computers 49. The remote computer (or computers) 49 may be another computer, a server, a router, a network PC, a peer device or another node of a single network, and usually includes most or all of the elements described above with respect to computer 20, although only storage device 50 is shown. Logical connections include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are common in institutions, corporate computer networks, and the Internet.
The computer 20 used in the LAN network environment is connected to the local network 51 via a network interface or adapter 53. The computer 20 used in the WAN network environment typically uses a modem 54 or other means to establish communication with a global computer network 52, such as the Internet.
Modem 54, which could be either internal or external, is connected with the system bus 23 via the interface 46 of the serial port. In a networked environment, program modules, or parts thereof, as described in relation to computer 20, may be stored on a remote information storage device. It must be taken into account that the network connections shown are typical, and other means may be used to establish a communication link between the computers. In conclusion, it should be noted that the information given in the description are examples that do not limit the scope of the present invention as defined by the formula. The person skilled in the art will understand that there may be other embodiments of the present invention consistent with the nature and scope of the present invention.

Claims

Claim of the invention
1. A method for diagnosing mobile computing devices, which includes:
- implementation of the installation of the mobile applications for diagnostics synchronization and installation service , at least on one of the user's computing devices;
- implementation of installation on a user's computing device of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices, which are diagnosable devices, for establishing communication between mobile computing devices and user’s computing devices;
- implementation of establishing a connection between mobile computing devices and user computing devices;
- installation of a mobile application for diagnosing a mobile computing device on at least one such mobile computing device, the installation of said mobile application for diagnostics is carried out by means of mobile applications for diagnostics synchronization and installation service;
- the user launches the above-mentioned mobile diagnostic application on a mobile computing device, and at the time of launching the mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predetermined port, where the mentioned port is automatically selected from the available ports by the mobile applications for diagnostics synchronization and installation service;
- implementation of the diagnosis of the mobile computing device, and the diagnosis of the mobile computing device includes the process of diagnosis of the constituent elements of the mobile computing device;
- transferring diagnostic results to at least one user's computing device through a mobile applications for diagnostics synchronization and installation service that communicate with a mobile diagnostic application through a data exchange module; - implementation of sending diagnostic results from the user's computing device to a web server, and the diagnostic results are stored in at least one database server, at least in one data store, at least in one database, and the stored results of diagnostics are also displayed to at least one user through a web interface in a web browser in order to determine the operability or malfunction of the mobile computing device or at least one composition element of a mobile computing device.
2. Method of claim 1 , where in the process of diagnosing a mobile computing device, the diagnostics of the functioning of the software installed on the mobile computing device, including the diagnostics of drivers for the constituent elements of the mobile computing device and applications, is performed.
3. The method of claim 1 , wherein, when performing diagnostics of the mobile computing device, the software of the mobile computing device is updated, including at least one application installed on it, or at least one part of such an application, such mentioned part of the application is associated with a specific constituent element of a mobile computing device.
4. The method of claim 1, wherein, when performing diagnostics of a mobile computing device, drivers of the constituent elements of the mobile computing device, operating systems or components of the operating systems of the mobile computing device and / or the user's computing device are updated.
5. The method of claim 1 , wherein, when performing diagnostics of a mobile computing device, by accessing the operating system API of the mobile computing device by a mobile diagnostic application, determining the available number of constituent elements of the mobile computing device, which are diagnosed by the mobile diagnostic application.
6. The method according to claim 1, wherein the constituent elements of the mobile computing device are microphone (s), speaker (s), screen (s), sensor (s), camera (s) and flash (s).
7. Method according to claim 6 where the speakers of the mobile computing device are diagnosed, and the audio recording is played on the mobile computing device, and a set of images is displayed on the mobile computing device during or after the audio recording is played, where at least one of such images corresponds to the audio recording, and then by the user of the mobile computing device after or during listening the record is used to select said image corresponding to the reproduced record, and if the user selected image corresponds to the reproduced record, the diagnostics of mobile computing device speaker is passed by such a mobile computing device.
8. Method according to claim 6 where the microphones of the mobile computing device are diagnosed, and after launching the mobile diagnostic application during the diagnostic process, the mobile diagnostic application records "white noise" by means of at least one mobile computing device microphone and, if mobile diagnostic application has determined that the "white noise" was recorded, then the mobile diagnostic application captures that the microphone is operable.
9. Method according claim 1 , where in the mobile diagnostic application, the mobile computing device is diagnosed for“hacking”, and this diagnostics includes checking for the possibility of free access for the user and / or one of the applications installed on the mobile computing device to the file system of the mobile operating system in the mobile computing device, moreover, the aforementioned diagnostics is carried out by installing a Windows service on the mobile computing device of a mobile application, which is not signed by the developer, and during the attempt to run such unsigned application by the mobile application for diagnostics or by the user the check is performed in which if it is possible implementation of start of said unsigned application, the device is considered "hacked".
10. Method according to claim 9, where in the process of diagnosing a mobile computing device for "hacking" with a mobile application for diagnostics there is an attempt made to access system directories by reading the contents of files and subdirectories of such directories, and if the fact of the reading was detected then the diagnostics result would be the fact of "hacking" of a mobile computing device.
11. Method according claim 10, where in the process of performing diagnostics on "hacking" a mobile computing device by using a mobile diagnostic application, an attempt is made to access the system files of the mobile computing device, and if reading the system files can be performed, then the result of the diagnostics is the fact of“hacking” the device of the mobile computing device, and in case reading the system files and the contents of the mentioned directories can not be performed, the diagnosis result to "hacking" mobile computing device is the fact that a mobile computing device has not been "hacked".
12. Method according to claim 10 at which in the process of diagnosing a mobile computing device for“hacking” with a mobile diagnostic application, an attempt is made to install a mobile application that is not signed with a license to a mobile computing device, even if the mobile application or user failed to install such unsigned application , the result of the diagnosis is the fact that there is no “hacking” of the mobile computing device.
13. Method according to claim 1 where after the mobile diagnostic application is installed using the mobile applications for diagnostics synchronization and installation service on at least one mobile computing device, mobile computing devices are automatically connected to at least one user computing device.
14. Method according to claim 1 , where the mobile applications for diagnostics synchronization and installation service for each connected mobile computing device to the user's computing device creates a dedicated program execution flow as part of the the mobile applications for diagnostics synchronization and installation service, and the dedicated program execution flow performs at least , one attempt to organize a socket with a TCP server, and the mobile applications for diagnostics synchronization and installation service attempts to establish a connection between the mobile computing device and the user's computing device.
15. Method according to claim 14, where in the case of the aforementioned successful creation of a dedicated program execution flow, two-way data exchange is performed between the mobile diagnostic application installed on the mobile computing device and the synchronization and installation service of mobile applications to diagnose the user's computing device, and the two-way data exchange is performed by means of a protocol that contains control words, message formation rules, rules for encryption of messages and methods for their analysis, where the operation of the mentioned protocol is carried out via the TCP / IP protocol stack, in particular, through the transport layer of such a protocol through the sockets created during the connection.
16. Method according to claim 15, where with each of the simultaneously connected mobile computing devices to the user's computing devices, a dedicated flow of mobile applications for diagnostics synchronization and installation service is created, and the independent connection mentioned above is established with each of the simultaneously connected mobile computing devices at that the control of navigation in windows of mobile application for diagnostics is carried out through the mentioned connection.
17. The method of claim 14, wherein the dedicated program flow is performed after:
- obtaining a list of connected mobile computing devices by the applications for diagnostics synchronization and installation service;
- implementation by the applications for diagnostics synchronization and installation service of the comparison of a connected mobile computing device with a list of connected mobile computing devices to at least one user's computing device;
- the implementation by the applications for diagnostics synchronization and installation service to check for the presence of a new mobile computing device connected to the user's computing device and if such a mobile computing device is found in the list of connected mobile computing devices, such a device is added to the list of connected mobile computing devices.
18. Method according to claim 1, where in the process of diagnostics, a mobile diagnostic application retrieves data about the manufacturer of a mobile computing device and obtains the properties of a mobile computing device.
19. Method according to claim 1, where in the diagnostic process, commands are sent by the user's computing device to at least one mobile computing device and the user's computing device waits for a response from the mobile computing device containing the diagnostic results of the mobile computing device.
20. Method according to claim 1, where during the execution of a mobile diagnostic application on a mobile computing device, the mobile applications for diagnostics synchronization and installation service, with predetermined periodicity, sends encrypted data to a mobile computing device using one of the known encryption methods that the mobile diagnostic application uniquely interprets by using timestamps, a password stored on a web server, and using for protection against a possible implementation of the decoding of said data by third party users, services, applications and systems.
21. A system for diagnosing mobile computing devices, which includes:
- at least one mobile computing device that is a diagnosable device on which the following is performed:
- installation of a mobile application for diagnostics of a mobile computing device, and the installation of said mobile application for diagnostics is carried out by means of a mobile applications for diagnostics synchronization and installation service, at that
- launching the mentioned mobile diagnostic application on a mobile computing device, where at the time of launching of the mobile diagnostic application, such a mobile diagnostic application organizes a TCP - server that waits for the user's computing devices to connect to a predefined port, where the specified port is automatically selected from the available ports by the mobile applications for diagnostics synchronization and installation service, and diagnostics of a mobile computing device includes the process of diagnostics of components of a mobile computing device;
- at least one computing device of the user associated with at least one mobile computing device, and on the said computing device of the user the following is performed:
- installation of the mobile applications for diagnostics synchronization and installation service;
- installation of drivers from manufacturers of mobile operating systems and manufacturers of mobile computing devices in order to establish communication between the mobile computing device and the user's computing device;
- a data exchange module that transfers diagnostic results to at least one user's computing device through a mobile applications for diagnostics synchronization and installation service that communicate with a mobile diagnostic application;
- a web server to which diagnostics results are sent from the user’s computing device;
- the database server, to which the diagnostic results, that were transferred to the web server are saved, at that storage is performed on at least one data store, at least in one database, and the stored diagnostic results are also displayed for, at least one user through a web interface in a web browser to determine the operability or malfunction of the mobile computing device or at least one component of the mobile computing device.
PCT/RU2019/000825 2019-04-29 2019-11-18 Method and system for diagnosing mobile computing devices WO2020222673A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EA201900211 2019-04-29
EA201900211A EA036911B1 (en) 2019-04-29 2019-04-29 Method and system for diagnostics of mobile computer devices

Publications (1)

Publication Number Publication Date
WO2020222673A1 true WO2020222673A1 (en) 2020-11-05

Family

ID=73029055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2019/000825 WO2020222673A1 (en) 2019-04-29 2019-11-18 Method and system for diagnosing mobile computing devices

Country Status (2)

Country Link
EA (1) EA036911B1 (en)
WO (1) WO2020222673A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698844A (en) * 2020-12-29 2021-04-23 威海新北洋技术服务有限公司 Flashing method and device of operating system and electronic equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060073785A1 (en) * 2004-10-05 2006-04-06 Research In Motion Limited Mobile device diagnosis, test, application deployment and update from a web page
US20060224545A1 (en) * 2005-03-04 2006-10-05 Keith Robert O Jr Computer hardware and software diagnostic and report system
US20170116062A1 (en) * 2015-10-23 2017-04-27 Pervacio Inc. Mobile device diagnostics
US20180068117A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
RU2671999C1 (en) * 2017-12-19 2018-11-08 Общество с ограниченной ответственностью "Инновационные системы" Method and system for diagnostics of mobile computer devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060073785A1 (en) * 2004-10-05 2006-04-06 Research In Motion Limited Mobile device diagnosis, test, application deployment and update from a web page
US20060224545A1 (en) * 2005-03-04 2006-10-05 Keith Robert O Jr Computer hardware and software diagnostic and report system
US20180068117A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
US20170116062A1 (en) * 2015-10-23 2017-04-27 Pervacio Inc. Mobile device diagnostics
RU2671999C1 (en) * 2017-12-19 2018-11-08 Общество с ограниченной ответственностью "Инновационные системы" Method and system for diagnostics of mobile computer devices

Also Published As

Publication number Publication date
EA201900211A1 (en) 2020-10-30
EA036911B1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
US20130326278A1 (en) Server and method of manipulation in relation to server serial ports
US8595321B2 (en) Supporting system for remote control
US20140123111A1 (en) Automatic testing apparatus for embedded software and automatic testing method thereof
US20220050765A1 (en) Method for processing logs in a computer system for events identified as abnormal and revealing solutions, electronic device, and cloud server
US10560757B1 (en) Integrated diagnostic and debugging of regional content distribution systems
US9391795B2 (en) Non-disruptive integrated network infrastructure testing
CN111330280B (en) Method and device for processing data in game, storage medium and electronic equipment
CN112188277B (en) Screen projection control method and device, electronic equipment and computer program medium
US9769434B1 (en) Remote control of a user's wearable computing device in help desk applications
CN110825595B (en) Recording playback method and system, storage medium
US10180900B2 (en) Recordation of user interface events for script generation
CN111309606A (en) Page exception handling method and device, computer equipment and storage medium
CN112015689A (en) Serial port output path switching method, system and device and switch
WO2020222673A1 (en) Method and system for diagnosing mobile computing devices
RU2671999C1 (en) Method and system for diagnostics of mobile computer devices
CN109634838A (en) Position method, apparatus, storage medium and the electronic equipment of application failure
US20230315620A1 (en) System and Method for Diagnosing a Computing Device in Safe Mode
US20210334153A1 (en) Remote error detection method adapted for a remote computer device to detect errors that occur in a service computer device
CN115033469A (en) Website system performance test method and device, equipment and storage medium
CN112711518A (en) Log uploading method and device
US10089261B2 (en) Discriminating dynamic connection of disconnectable peripherals
CN110286958B (en) Node information acquisition method, device and storage medium
CN115883822B (en) Method and device for debugging camera of online examination system and storage medium
US9330030B2 (en) Bridge decoder for a vehicle infotainment system
CN116306409B (en) Chip verification method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19927523

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19927523

Country of ref document: EP

Kind code of ref document: A1