DETERMINING A STATUS OF A MOBILE ELECTRONIC DEVICE
20220377165 · 2022-11-24
Inventors
Cpc classification
G06F11/3055
PHYSICS
G06F11/3072
PHYSICS
G06F11/3013
PHYSICS
International classification
Abstract
A method for use in determining a status of a mobile electronic device, comprises repeatedly reading information from a debug log stored in a ringbuffer of the mobile electronic device, repeatedly using the information read from the debug log to construct and maintain an event history for the mobile electronic device, and repeatedly determining the status of the mobile electronic device based on the event history. The method may be used for determining a status of a mobile electronic device and, in particular though not exclusively, for use in determining a status of one or more hardware elements of a mobile phone, a smartphone, a tablet and/or a laptop. A system and a computer program for use in determining a status of a mobile electronic device are also disclosed.
Claims
1. A method for use in determining a status of a mobile electronic device, the method comprising: repeatedly reading information from a debug log stored in a ringbuffer of the mobile electronic device; repeatedly using the information read from the debug log to construct and maintain an event history for the mobile electronic device; and repeatedly determining the status of the mobile electronic device based on the event history.
2. The method of claim 1, wherein repeatedly determining the status of the mobile electronic device comprises repeatedly determining whether or not the mobile electronic device is operating in a predetermined manner.
3. The method of claim 2, wherein the operation of the mobile electronic device in the predetermined manner corresponds to at least one of correct, normal, expected, default and desired operation of the mobile electronic device and/or operation of the mobile electronic device in compliance with one or more predetermined criteria.
4. The method of claim 1, further comprising reading information from the debug log stored in the ringbuffer at a plurality of different instants in time, wherein any two successive instants in time are separated by a time period which is sufficiently small so as to avoid an operating system of the mobile electronic device from over-writing any information in the debug log stored in the ringbuffer before the information can be read.
5. The method of claim 1, further comprising repeatedly reading information from the debug log at regular intervals.
6. The method of claim 1, further comprising reading only information from the debug log stored in the ringbuffer at one instant in time which is new or additional to the information read from the debug log at a preceding instant in time.
7. The method of claim 1, further comprising: repeatedly identifying one or more entries in, or portions of, the event history which are associated with at least one of the status, the activation and/or the operation of a hardware element of the mobile electronic device; and repeatedly determining the status of the hardware element based on the identified one or more entries in, or portions of, the event history.
8. The method of claim 7, wherein repeatedly identifying the one or more entries in, or portions of, the event history which are associated with at least one of the status, the activation and/or the operation of the hardware element comprises repeatedly searching the event history for at least one of one or more characters, one or more symbols, one or more keywords, and one or more commands associated with at least one of the status, the activation and/or the operation of the hardware element.
9. The method of claim 7, further comprising: repeatedly parsing the identified one or more entries in, or portions of, the event history; and repeatedly determining the status of the hardware element based on the one or more parsed entries in, or portions of, the event history.
10. The method of claim 7, wherein determining the status of the hardware element comprises determining whether or not the hardware element is operating in a predetermined manner.
11. The method of claim 10, wherein the operation of the hardware element in the predetermined manner corresponds to at least one of correct, normal, expected, default and desired operation of the hardware element and/or operation of the hardware element in compliance with one or more predetermined criteria.
12. The method of claim 7, wherein the hardware element comprises at least one of: a transducer, a component, a device, an input element, an output element, a control, a push button, a knob, a switch, a key, a keyboard, a keypad, a sensor, an accelerometer, an image sensor, a microphone, a proximity sensor, a motion sensor, a user interface, a touchscreen, an indicator, a display, and a speaker.
13. The method of claim 1, further comprising setting, controlling or enabling the mobile electronic device so that an operating system of the mobile electronic device writes information relating to the operation of the mobile electronic device to the debug log stored in the ringbuffer of the mobile electronic device.
14. The method of claim 1, further comprising: setting, controlling or enabling the mobile electronic device so as to increase a level of detail of the information relating to the operation of the mobile electronic device which the operating system of the mobile electronic device writes to the debug log stored in the ringbuffer of the mobile electronic device; and/or setting, controlling or enabling the mobile electronic device so as to cause the operating system of the mobile electronic device to perform verbose logging.
15. The method of claim 1, wherein the mobile electronic device comprises an iOS device or an iOS operating system and the method comprises using the syslog relay service when the mobile electronic device is in normal mode.
16. The method of claim 1, wherein the mobile electronic device comprises an Android device or an Android operating system and the method comprises enabling USB debugging.
17. The method of claim 1, further comprising using an external processing resource which is external to the mobile electronic device to repeatedly read information from the debug log stored in the ringbuffer of the mobile electronic device.
18. The method of claim 17, further comprising using the external processing resource to cause an external display which is external to the mobile electronic device to repeatedly display information representative of the determined status of the mobile electronic device.
19. The method of claim 18, further comprising using the external processing resource to cause the external display to display information for guiding or prompting a user of the mobile electronic device to perform one or more actions in relation to the mobile electronic device, for example wherein the one or more actions to be performed in relation to the mobile electronic device comprise activating or operating an input element of the mobile electronic device.
20. The method of claim 18, further comprising: repeatedly reading information from the debug log stored in the ringbuffer of the mobile electronic device after the external display has displayed the information for guiding or prompting the user to perform one or more actions in relation to the mobile electronic device; repeatedly using the information read from the debug log to construct and maintain an event history for the mobile electronic device; and repeatedly determining whether the one or more actions have been performed in relation to the mobile electronic device based on the event history.
21. The method of claim 18, further comprising using the external processing resource to cause the external display to sequentially display information on the external display to sequentially guide or prompt a user of the mobile electronic device to sequentially perform a plurality of actions in relation to the mobile electronic device.
22. The method of claim 21, further comprising: repeatedly reading information from the debug log stored in the ringbuffer of the mobile electronic device after the external display has displayed the information for guiding or prompting the user to perform each one of the plurality of actions in relation to the mobile electronic device; repeatedly using the information read from the debug log to construct and maintain an event history for the mobile electronic device; and repeatedly determining whether each one of the plurality of actions has been performed in relation to the mobile electronic device based on the information read from the debug log.
23. The method of claim 1, wherein the mobile electronic device comprises a mobile phone, a smartphone, a tablet or a laptop.
24. A system for use in determining a status of a mobile electronic device, the system comprising an external processing resource which is external to the mobile electronic device, wherein the external processing resource is configured for communication with the mobile electronic device and is configured to perform the method of claim 1.
25. A non-transitory computer-readable medium comprising a computer program for use in determining a status of a mobile electronic device, the computer program being configured so that, when executed by an external processing resource external to the mobile electronic device, the external processing resource performs the method of claim 1.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0045] A system, method and computer program for use in determining a status of a mobile electronic device will now be described by way of non-limiting example only with reference to the following drawings of which:
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
DETAILED DESCRIPTION OF THE DRAWINGS
[0058] Referring initially to
[0059] As shown in
[0060] The PC 6 includes a processing resource in the form of a processor 40, a memory 42 and a display 44. The memory 42 stores a computer program 46 which, when executed by the processor 40, causes the processor 40 to perform a method as described below.
[0061] In use, with the iPhone 4 configured in normal mode, the OS of the iPhone 4 repeatedly receives information relating to the status, activation and/or operation of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24 and writes the received information to the debug log 34 stored in the ringbuffer 32 via the syslog relay service. As will be described in more detail below, when the iPhone 4 is connected to the PC 6 via the cable 8 and the processor 40 of the PC 6 executes the computer program 46, the processor 40 of the PC 6 repeatedly reads information from the debug log 34 stored in the ringbuffer 32 of the iPhone 4, the processor 40 repeatedly uses the information read from the debug log 34 to construct and maintain an event history for the iPhone 4, and the processor 40 repeatedly determines a status of the smartphone 4 based on the event history.
[0062] For example,
[0063] As will be described in more detail below, when the processor 40 of the PC 6 executes the computer program 46, the processor 40 repeatedly reads information from the debug log 34 stored in the ringbuffer 32 of the iPhone 4 and determines the status of hardware elements 10, 12, 13, 14, 16, 18, 22, 24 based on the information read from the debug log 34 and updates the graphical representation 50 of the iPhone 4 displayed on the display 44 of the PC 6 accordingly. For example, if the processor 40 determines that the power key 10 of the iPhone 4 has been activated, the processor 40 causes the display 44 of the PC 6 to update the graphical representation of the power key 10 from the yellow coloured dot or circle 52 shown in
[0064] More specifically, when the processor 40 of the PC 6 executes the computer program 46, the processor 40 repeatedly reads information from the debug log 34 stored in the ringbuffer 32 of the iPhone 4 at a plurality of different instants in time, wherein any two successive instants in time are separated by a time period which is sufficiently small so as to avoid the OS of the iPhone 4 from over-writing any information in the debug log 34 stored in the ringbuffer 32 before the processor 40 can read the information. Specifically, when the processor 40 of the PC 6 executes the computer program 46, the processor 40 obtains the contents of the debug log 34 stored in the ringbuffer 32 of the iPhone 4 by executing an “idevicesyslog” command. The processor 40 reads only the information from the debug log 34 stored in the ringbuffer 32 at one instant in time which is new or additional to the information which the processor 40 reads from the debug log 34 at a preceding instant in time. By proceeding in this way, there is no need for the processor 40 to repeatedly read the whole debug log 34 at each instant in time. The processor 40 uses the information which is repeatedly read from the debug log 34 to construct and maintain an event history for the iPhone 4 which includes an event history of each of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24. The event history for the iPhone 4 may also include any errors or warnings which the OS of the iPhone 4 has encountered or generated during execution of the computer program 46.
[0065] The processor 40 repeatedly searches the event history to identify any entries in, portions of, or lines of code of, the event history which contain one or more characters, one or more symbols, one or more keywords, or one or more commands associated with at least one of the status, the activation and/or the operation of each hardware element 10, 12, 13, 14, 16, 18, 22, 24. For example, the processor 40 repeatedly executes a “grep” command for each of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24 of the iPhone 4 to repeatedly search the event history and identify any entries in, portions of, or lines of code of, the event history which contain one or more characters, one or more symbols, one or more keywords, or one or more commands associated with at least one of the status, the activation and/or the operation of each hardware element 10, 12, 13, 14, 16, 18, 22, 24. The processor 40 repeatedly determines the status of each hardware element 10, 12, 13, 14, 16, 18, 22, 24 from the corresponding entries in, portions of, or lines of code of, the event history identified during the search. For example, the processor 40 repeatedly determines the status of each hardware element 10, 12, 13, 14, 16, 18, 22, 24 by repeatedly parsing the corresponding lines of code of the event history identified during the search. The processor 40 causes the display 44 of the PC 6 to repeatedly update the graphical representation 50 of the iPhone 4 including the graphical representations of each hardware element 10, 12, 13, 14, 16, 18, 22, 24 according to the determined status of each hardware element 10, 12, 13, 14, 16, 18, 22, 24. At the instant in time corresponding to
[0066] Referring now to
[0067] When the processor 40 of the PC 6 executes the computer program 46, the processor 40 repeatedly reads information from the debug log 34 stored in the ringbuffer 32 of the iPhone 4. The processor 40 uses the information read from the debug log 34 to construct and maintain an event history for the iPhone 4. The processor 40 determines the status of hardware elements 10, 12, 13, 14, 16, 18, 22, 24 based on the event history and updates the graphical representation 50 of the iPhone 4 displayed on the display 44 of the PC 6 accordingly. For example, if the processor 40 determines that the proximity sensor 22 of the iPhone 4 has been activated, the processor 40 causes the display 44 of the PC 6 to update the graphical representation of the proximity sensor 22 from the yellow coloured dot or circle 52 shown in
[0068] Similarly,
[0069]
[0070] Although not described above, one of ordinary skill in the art will understand that when the program 46 is executed by the processor 40, the processor 40 may detect the status, activation and/or operation of any of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24 and update the graphical representation 50 of the iPhone 4 on the display 44 of the PC 6 accordingly using a method which is essentially identical to the methods described above with reference to
[0071] In this way, the processor 40 may determine whether or not any of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24 are operating in a predetermined manner. For example, the processor 40 may determine whether or not any of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24 are operating in a predetermined manner which corresponds to at least one of correct, normal, expected, default and desired operation of the hardware element and/or operation of the hardware element in compliance with one or more predetermined criteria. Such methods may be useful for diagnosing faults or problems with any of the hardware elements 10, 12, 13, 14, 16, 18, 22, 24.
[0072] The processor 40 may determine whether or not the iPhone 4 is operating in a predetermined manner. For example, the processor 40 may determine whether or not the iPhone 4 is operating in a predetermined manner which corresponds to at least one of correct, normal, expected, default and desired operation of the iPhone 4 and/or operation of the iPhone 4 in compliance with one or more predetermined criteria. Such methods may be useful for diagnosing faults or problems with the iPhone 4.
[0073] It should be understood that the methods for use in determining the status of the iPhone 4 described above with reference to
[0074] In a variant of the method for use in determining the status of the iPhone 4 described above with reference to
[0075] The processor 40 may cause the display 44 of the PC 6 to sequentially display information which sequentially guides or prompts a user of the iPhone 4 to sequentially perform a plurality of actions in relation to the iPhone 4. The method may comprise repeatedly reading the information from the debug log 34 stored in the ringbuffer 32 of the iPhone 4 after the display 44 of the PC 6 has displayed the information for guiding or prompting the user to perform each one of the plurality of actions in relation to the iPhone 4. The method may comprise determining whether each one of the plurality of actions has been performed in relation to the iPhone 4 based on the event history.
[0076] One of ordinary skill in the art will understand that various modifications are possible to the system and methods described above. For example, although the foregoing methods are described in the context of an iPhone, it should be understood that the same methods may be applied to a mobile electronic device of any kind, for example to other types, kinds or makes of mobile phone or smartphone, to a tablet and/or to a laptop. In particular, it should be understood that the same methods may be applied to a mobile electronic device running an operating system other than an iOS operating system. For example, the same methods may be applied to a mobile electronic device running an Android operating system.
[0077] The method may comprise setting, controlling or enabling the mobile electronic device so as to increase a level of detail of the information relating to the operation of the mobile electronic device which the operating system of the mobile electronic device writes to the debug log stored in the ringbuffer of the mobile electronic device.
[0078] The method may comprise setting, controlling or enabling the mobile electronic device so as to cause the operating system of the mobile electronic device to perform verbose logging.
[0079] The mobile electronic device may comprise an iOS device or an iOS operating system. The method may comprise using the syslog relay service when the mobile electronic device is in normal mode.
[0080] The mobile electronic device may comprise an Android device or an Android operating system. The method may comprise enabling USB debugging.
[0081] The mobile electronic device may comprise more or fewer hardware elements than the hardware elements described above. For example, the mobile electronic device may comprise at least one of a microphone, an image sensor and a speaker.
[0082] One of ordinary skill in the art will understand that one or more of the features of the embodiments of the present disclosure described above with reference to the drawings may produce effects or provide advantages when used in isolation from one or more of the other features of the embodiments of the present disclosure and that different combinations of the features are possible other than the specific combinations of the features of the embodiments of the present disclosure described above.