Patent Publication Number: US-11663371-B2

Title: Method and apparatus for location-based recovery of stolen mobile devices

Description:
RELATED APPLICATION(S) 
     This patent arises from a continuation of U.S. patent application Ser. No. 16/460,636 (now U.S. Pat. No. 10,963,595), entitled “METHOD AND APPARATUS FOR LOCATION-BASED RECOVERY OF STOLEN MOBILE DEVICES,” filed Jul. 2, 2019, which is a continuation of U.S. patent application Ser. No. 16/046,754 (now U.S. Pat. No. 10,346,644), entitled “METHOD AND APPARATUS FOR LOCATION-BASED RECOVERY OF STOLEN MOBILE DEVICES,” filed Jul. 26, 2018, which is a continuation of U.S. patent application Ser. No. 15/298,081 (now U.S. Pat. No. 10,061,945), entitled “METHOD AND APPARATUS FOR LOCATION-BASED RECOVERY OF STOLEN MOBILE DEVICES,” filed Oct. 19, 2016, which is a continuation of U.S. patent application Ser. No. 11/014,891 (now U.S. Pat. No. 9,501,669), entitled “METHOD AND APPARATUS FOR LOCATION-BASED RECOVERY OF STOLEN MOBILE DEVICES,” filed Dec. 17, 2004. Priority to U.S. patent application Ser. Nos. 16/460,636, 16/046,754, 15/298,081, and 11/014,891 is claimed. Further, U.S. patent application Ser. Nos. 16/460,636, 16/046,754, 15/298,081, and 11/014,891 are hereby fully incorporated by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     Embodiments of the present invention are generally related to the field of location aware computing. More particularly, embodiments of the present invention are related to a method and apparatus for location-based recovery of lost or stolen mobile devices. 
     Description 
     Location awareness is becoming increasingly important in computing systems, especially in mobile devices. Location awareness in mobile devices enables users to be directed to specific locations, to find people and resources, and to switch the operating context of the mobile device based on location (e.g., home vs. work). Currently, location awareness is implemented at the operating system or application level. 
     With the location awareness being implemented at the operating system or application level, if the mobile device is stolen, the thief may replace the encrypted hard drive, thereby causing the location awareness capability to be lost as well. 
     Thus, what is needed is a method and apparatus for enabling a mobile device to have location awareness capabilities that cannot be removed with the removal of the hard drive. What is also needed is a method and apparatus for enabling a mobile device to be located when stolen, lost, misplaced, etc., using location awareness capabilities built into the mobile device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated herein and form part of the specification, illustrate embodiments of the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art(s) to make and use the invention. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number. 
         FIG.  1    is a block diagram illustrating an exemplary system for location-based recovery of mobile devices according to an embodiment of the present invention. 
         FIG.  2    is a block diagram illustrating an exemplary apparatus of a location-based recovery mechanism embedded in the platform firmware of a mobile device according to an embodiment of the present invention. 
         FIG.  3    is a flow diagram illustrating an exemplary method for location-based recovery of mobile devices that are stolen, lost, or misplaced from the perspective of a location reporting module according to an embodiment of the present invention. 
         FIG.  4    is a flow diagram illustrating an exemplary method for location-based recovery of mobile devices that are stolen, lost, or misplaced from the perspective of a central database according to an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the relevant art(s) with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which embodiments of the present invention would be of significant utility. 
     Reference in the specification to “one embodiment”, “an embodiment” or “another embodiment” of the present invention means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearance of the phrases “in one embodiment” and “in an embodiment” appearing in various places throughout the specification are not necessarily all referring to the same embodiment. 
     Embodiments of the present invention are directed to a method and apparatus for location-based recovery of stolen, lost, or misplaced mobile devices. This is accomplished by embedding location-aware technology within the platform firmware of the mobile device. The embedded location-aware capabilities may be used to provide the location of the mobile device, and, if necessary, to enable the recovery of the mobile device if it is stolen, lost, or misplaced. Implementing the location-aware technology in the firmware rather than the operating system or application layer prevents the location-based recovery mechanism from being removed if the disk drive is replaced. The location-aware capabilities in the mobile device include a location sensing technology built into the platform firmware by the factory as part of the motherboard and a location reporting module as part of the platform firmware for reporting the location of the mobile device to an Internet node. The location of the mobile device is reported to a central database to enable the mobile device to be recovered if it was stolen, lost, or misplaced or for other purposes, such as, for example, keeping track of inventory. 
     Embodiments of the present invention may require the firmware and any firmware upgrades to be non-hackable. Therefore, the firmware and any firmware upgrades are signed to prevent the replacement of the firmware with alternate firmware that does not contain the location-based recovery mechanism. Digitally signing the firmware and any firmware upgrades prevents the firmware from being replaced with something that is not digitally signed. This also proves whether a replacement is valid. Digital signatures are well-known in the relevant art(s). 
     Embodiments of the present invention are shown as being implemented in the platform firmware of a laptop computer. Although the location-aware capabilities are described as being implemented in the platform firmware of a laptop computer, the invention is not limited to laptop computers. The location-aware capabilities may be implemented in the platform firmware of other mobile computing devices, such as, for example, personal digital assistants, notebook computers, tablet computers, cellular telephones, pagers, etc. In fact, embodiments of the invention may also be used to locate computing devices that may not be classified as mobile, yet may be compact enough to be easily stolen, lost, or misplaced. 
       FIG.  1    is a block diagram illustrating an exemplary system  100  for location-based recovery of mobile devices according to an embodiment of the present invention. System  100  comprises a location-aware computing device such as, for example, laptop  102 , a wide-area network such as, for example, Internet  104 , and a central database  106 . Internet  104  allows location-aware computing device  102  to communicate with central database  106 , and vice versa. 
     Although location-aware computing device  102  is shown as a laptop computer, location-aware computing device  102  may be any mobile device capable of location-aware computing. Such mobile devices may include, but are not limited to, laptop computers, notebook computers, tablet computers, personal digital assistants (PDAs), cellular telephones, pagers, etc. Location-aware computing device  102  may also be referred to as a mobile device. 
     Location-aware computing device  102  includes location hardware implemented within the platform&#39;s firmware. Location-aware computing device  102  may be capable of connecting to Internet  104  via a wireless and/or wired connection. Location-aware computing device  102  will be described further with reference to  FIG.  2   . 
     In one embodiment, central database  106  may be part of a corporate Information Technology (IT) department tasked to maintain, keep track of, and protect all mobile devices owned by the corporation. In another embodiment, central database  106  may be owned by a service provider company tasked to monitor or track personally owned mobile devices to enable the mobile devices to be recovered if they are stolen, lost, or misplaced. Other types of entities may also provide a central database for tracking location-aware computing devices. 
     Central database  106  receives location reports and mobile device identification information on a plurality of mobile devices. Central database  106  also reports the location of a stolen, lost, or misplaced mobile device to the appropriate parties. The appropriate parties may be, but are not limited to, the corporate IT department, the service provider, the owner of the mobile device, the rightful user of the mobile device, law enforcement officials, etc. 
       FIG.  2    is a block diagram  200  illustrating an exemplary apparatus for a location-based recovery mechanism embedded in platform firmware of a mobile device according to an embodiment of the present invention. Shown in  FIG.  2    is an operating system  202  coupled to a platform firmware layer  204 . Operating system  202  is a program in the mobile device that is loaded off of a hard drive, flash memory, or some other type of non-volatile memory and resides in temporary memory. Operating system  202  maintains disk files, runs applications, and handles devices, such as, for example, a keyboard, a monitor, a printer, a mouse, a disk drive, etc. Operating systems are well known in the relevant art(s). In embodiments of the present invention, the location-based recovery mechanism is separate from operating system  202 , and is embedded in platform firmware layer  204 . 
     Platform firmware layer  204  comprises, inter alia, a platform resource interface  206 , a platform location service  208 , a location reporting module  210 , a network stack  212 , network hardware  216 , and location hardware  214 . Platform resource interface  206  may be coupled to platform location service  208  and network stack  212 . Platform location service  208  may be coupled to location hardware  214  and location reporting module  210 . Network stack  212  may be coupled to location reporting module  210  and network hardware  216 . 
     Platform resource interface  206  is an interface layer that enables operating system  202  to communicate with the remaining components in platform firmware layer  204 . In one embodiment of the invention, platform resource interface  206  may be a set of application programming interfaces (APis) that enable operating system  202  to communicate with the other components in platform firmware layer  204 . For example, operating system  202  may use platform resource interface  206  to send network packets back and forth over a network via network stack  212  and network hardware  216 . Also, operating system  202  may use platform resource interface  206  to request the location of the mobile device via platform location service  208  and location hardware  214 . 
     Platform location service  208  is a firmware module that provides location information to an entity requesting the location of the mobile device. Platform location service  208  provides the location information in the proper format for the requesting entity. For example, operating system  202  may request the location of the mobile device and platform location service  208  will provide the information to operating system  202  in a format suitable for operating system  202 , such as, for example, in the form of longitude and latitude. Platform location service  208  may also receive a request for the location of the mobile device from location reporting module  210 . 
     Platform location service  208  retrieves the location information from location hardware  214 . Location hardware  214  may be any hardware capable of determining the location of the mobile device. For example, location hardware  214  may be a global positioning system (GPS) receiver, which is well known in the relevant art(s). Location hardware may also be a WI-FI (Wireless Fidelity) receiver for determining location based on WI-FI access points, a cellular receiver for determining location based on cell tower proximity, or any other receiver capable of determining the location of the mobile device. 
     Location reporting module  210  initiates the transaction that reports the location of the mobile device to the central database. Thus, location reporting module  210  handles all outside requests for the location of the mobile device. Location reporting module  210  keeps abreast of when platform firmware layer  204  connects to the Internet. Location reporting module  210  sends and receives network packets off of network stack  212 . When platform firmware layer  204  connects to the Internet, location reporting module  210  is made aware of the connection from network stack  212 . Location reporting module  210  sends an initial network packet to central database  106  to inquire whether central database  106  wants location information for the mobile device. The network packet includes an identifier to enable central database  106  to identify the mobile device that sent the network packet. If central database  106  responds that it does want location information for the mobile device, then location reporting module  210  will query platform location service  208  to obtain its location from location hardware  214 . When location reporting module  210  receives the location information from platform location service  208 , location reporting module  210  packages the information into a network packet and sends it back out of network stack  212  via network hardware  216  to central database  106 . 
     Network stack  212 , along with network hardware  216 , are standard components that allow other components on platform firmware layer  204  to send and receive network packets over the Internet, and are well-known in the art(s). Network stack  212  puts network packets together and controls network hardware  216 . Network stack  212  may be software, such as, for example, a TCP/IP stack. Network hardware  216  may be a network interface card (NIC), such as, for example, a WI-FI card, an Ethernet card, etc. Network hardware  216  may also be a phone modem or anything that allows platform firmware layer  204  to connect to the Internet. 
       FIG.  3    is a flow diagram  300  illustrating an exemplary method for location-based recovery of mobile devices that are stolen, lost, or misplaced from the perspective of a location reporting module according to an embodiment of the present invention. The invention is not limited to the embodiment described herein with respect to flow diagram  300 . Rather, it will be apparent to persons skilled in the relevant art(s) after reading the teachings provided herein that other functional flow diagrams are within the scope of the invention. The process begins at  302 , where the process immediately proceeds to block  304 . 
     In block  304 , network stack  212  reports that a connection to Internet  104  has been made. Central database  106  is then accessed to see if the mobile device should report its location to the central database (block  306 ). The process then proceeds to decision block  308 . 
     In decision block  308 , it is determined whether central database  106  has requested the location of the mobile device. If it is determined that central database  106  has requested the location of the mobile device, the process proceeds to block  310 . 
     In block  310 , platform location service  208  is queried to obtain the location of the mobile device. The location of the mobile device is obtained from location hardware  214 . Location hardware  214  may use sensing technology to determine the location of the mobile device. The process then proceeds to block  312 . 
     In block  312 , the location of the mobile device is received. The location of the mobile device is then sent to central database  106  via network stack  212 , network hardware  216 , and Internet  104 , thereby enabling central database  106  to notify the appropriate parties. If the mobile device has been lost, stolen, or misplaced, central database  106  will notify the appropriate parties who may take action to recover the mobile device. Such parties may include, but are not limited to, the corporate IT department, the service provider organization, the local law enforcement department, the owner of the mobile device, the person listed as being responsible for the mobile device, etc. 
     Returning to decision block  308 , if it is determined that central database  106  has not requested the location of the mobile device, the process proceeds to block  314 . In block  314 , the process ends. 
       FIG.  4    is a flow diagram  400  illustrating an exemplary method for location-based recovery of mobile devices that are stolen, lost, or misplaced from the perspective of a central database according to an embodiment of the present invention. The invention is not limited to the embodiment described herein with respect to flow diagram  400 . Rather, it will be apparent to persons skilled in the relevant art(s) after reading the teachings provided herein that other functional flow diagrams are within the scope of the invention. The process begins at  402 , where the process immediately proceeds to block  404 . 
     In block  404 , a request as to whether location data should be reported for a mobile device is received from the mobile device. The request includes identification for the mobile device. In one embodiment, the identification may be an address unique to the mobile device, such as, for example, a MAC (Media Access Control) address. Other types of unique identifiers may also be used. The process then proceeds to decision block  406 . 
     In decision block  406 , it is determined whether location data should be reported for the mobile device identified in the request. Central database  106  may determine, using the unique identifier provided in the network packet, whether the entity in control of central database  106  is interested in knowing the location of the mobile device. For example, if the mobile device has been reported stolen, lost, or misplaced, or if the entity in control of the central database needs to know the location of the mobile device for inventory purposes, then central database  106  will determine that the location is needed and the process will proceed to block  408 . 
     In block  408 , a reply is sent to the mobile device indicating that the location of the mobile device should be sent to central database  106 . In block  410 , the location data for the mobile device is received. The process then proceeds to block  412 , where the appropriate persons are informed of the location of the mobile device for purposes of recovering the mobile device if the mobile device has been stolen, lost, or misplaced or, if the mobile device has not been lost, stolen, or misplaced, for purposes of keeping track of inventory or other purposes. 
     Returning to decision block  406 , if it is determined that location data for the mobile device identified in the request should not be reported, then the process proceeds to block  414 . In block  414 , the process ends. 
     Although embodiments of the present invention are described with a mobile reporting its location only when requested by central database  106 , the invention is not limited to this. For example, in an alternative embodiment, an administrator for central database  106  may set a policy to have a mobile device report its location each time the mobile device connects to the Internet. Other reporting policies may also be implemented by the administrator as well. 
     Certain aspects of embodiments of the present invention may be implemented using hardware, software, or a combination thereof and may be implemented in one or more computer systems or other processing systems. In fact, in one embodiment, the methods may be implemented in programs executing on programmable machines such as mobile or stationary computers, personal digital assistants (PDAs), set top boxes, cellular telephones and pagers, and other electronic devices that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code is applied to the data entered using the input device to perform the functions described and to generate output information. The output information may be applied to one or more output devices. One of ordinary skill in the art may appreciate that embodiments of the invention may be practiced with various computer system configurations, including multiprocessor systems, minicomputers, mainframe computers, and the like. Embodiments of the present invention may also be practiced in distributed computing environments where tasks may be performed by remote processing devices that are linked through a communications network. 
     Each program may be implemented in a high level procedural or object oriented programming language to communicate with a processing system. However, programs may be implemented in assembly or machine language, if desired. In any case, the language may be compiled or interpreted. 
     Program instructions may be used to cause a general-purpose or special-purpose processing system that is programmed with the instructions to perform the methods described herein. Alternatively, the methods may be performed by specific hardware components that contain hardwired logic for performing the methods, or by any combination of programmed computer components and custom hardware components. The methods described herein may be provided as a computer program product that may include a machine readable medium having stored thereon instructions that may be used to program a processing system or other electronic device to perform the methods. The term “machine readable medium” or “machine accessible medium” used herein shall include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that causes the machine to perform any one of the methods described herein. The terms “machine readable medium” and “machine accessible medium” shall accordingly include, but not be limited to, solid-state memories, optical and magnetic disks, and a carrier wave that encodes a data signal. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, module, logic, and so on) as taking an action or causing a result. Such expressions are merely a shorthand way of stating the execution of the software by a processing system to cause the processor to perform an action or produce a result. 
     While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined in accordance with the following claims and their equivalents.