IP Library Granted Patent US 9,740,883
Granted Patent B2
US 9,740,883 · App. 14/689,947 · Granted Aug 22, 2017

System and method for enabling control of mobile device functional components

Inventors: Joseph Anakata (Alameda, CA); Virginia Howard (Oakland, CA); Tasos Roumeliotis (Orinda, CA); Scott Hotes (Berkeley, CA)
Assignee: Location Labs, Inc.
G06F21/629G06F8/62G06F9/44505H04L41/0853H04L63/10G06F21/10G06F21/105G06F21/305G06F21/51G06F21/554H04M1/67H04M1/72577
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,740,883
App. No.
14/689,947
Granted
Aug 22, 2017
Kind
B2
Abstract

A system is provided including a non-transitory computer readable storage medium that causes a mobile device to store client states indicating statuses of mobile device functional components. Each client state corresponds to a functional component. A client digest of the client state is stored. A server digest corresponding to a server state and the client digest is received from a server. The server state indicates a status of a mobile device functional component. The server digest is compared with the client digest. A state request is transmitted to the server responsive to a determination of a difference between the server digest and client digest. The server state is received from the server. The functional component is enabled or disabled as indicated by the server state. The server state and digest are stored as the client state and digest respectively. Methods for control of mobile device functional components are also provided.

Claims (52)

1. A processor-implemented method performed by a computing device via a particular application operating on an operating system (“OS”) for controlling removal of the particular application, the method comprising:

receiving a disable request call to the particular application from the OS via settings activity;

purposefully delaying a reply to the disable request call for a particular time period, the purposefully delaying comprising performing an operating system sleep call;

after the purposeful delay, switching to a particular activity and stopping the settings activity to prevent removal of the particular application, wherein the particular application includes a client state manager installed on the computing device which communicates with a server state manager operated on a particular server accessible via a network enabled to lock or unlock the particular application;

the particular activity enabling a determining of a device administrator permission for the particular application;

storing at least one client state indicating an uninstall lock status of the particular application;

for each of the at least one client state, storing a client digest of the client state on the computing device;

receiving via the network from the particular server periodic transmissions of a particular server digest corresponding to at least one server state maintained by the particular server, which at least one server state indicates an uninstall lock status of the particular application, wherein the particular server digest further corresponds to the client digest;

comparing the particular server digest with the corresponding client digest;

transmitting to the particular server via the network a state request corresponding to the at least one server state responsive to a determination of a difference between the particular server digest and the corresponding client digest;

receiving from the particular server via the network the at least one server state;

disabling an uninstall lock on the particular application as indicated by the received at least one server state to enable removal of the particular application;

storing the received at least one server state as the corresponding at least one client state; and

storing the received particular server digest as the corresponding client digest.

2. The method of claim 1 , further comprising enabling at least one of a PIN dialog or a password dialog for display responsive to the disable request call.

3. The method of claim 2 , further comprising:

receiving at least one of a PIN or a password via the dialog; and

enabling removal of the particular application responsive to receiving the at least one of the PIN or the password.

4. The method of claim 3 , wherein enabling removal of the particular application comprises disabling the device administrator permission for the particular application.

5. The method of claim 1 , further comprising:

enabling a dialog for display responsive to the disable request call instructing a user to contact a network accessible application server to enable removal of the particular application;

receiving instructions from the network accessible application server to enable removal of the particular application; and

enabling removal of the particular application responsive to the instructions from the network accessible application server.

6. A processor-implemented method performed by a computing device via a particular application operating on an operating system (“OS”) for controlling removal of the particular application, the method comprising:

receiving a disable request call to the particular application from the OS via settings activity;

purposefully delaying a reply to the disable request call for a particular time period, the purposefully delaying comprising performing an operating system sleep call;

after the purposeful delay, switching to a particular activity and stopping the settings activity to prevent removal of the particular application, wherein the particular application includes a client state manager installed on the computing device which communicates with a server state manager operated on a particular server accessible via a network enabled to lock or unlock the particular application;

the particular activity enabling a determining of a device administrator permission by a process comprising:

the particular activity enabling at least one of a PIN dialog or a password dialog; and

receiving at least one of a PIN or a password via the at least one of the PIN dialog or the password dialog; and

enabling removal of the particular application responsive to receiving the at least one of the PIN or the password.

7. The method of claim 6 , wherein the steps of enabling the purposeful delay, switching to the particular activity, and stopping the settings activity are enabled responsive to settings activated in the particular application.

8. The method of claim 6 , further comprising receiving settings from the particular network accessible server, wherein the steps of enabling the purposeful delay, switching to the particular activity, and stopping the settings activity are enabled responsive to the retrieved settings.

9. The method of claim 6 , further comprising:

storing at least one client state indicating an uninstall lock status of the particular application;

for each of the at least one client state, storing a client digest of the client state on the computing device;

receiving via the network from the server periodic transmissions of a particular server digest corresponding to at least one server state maintained by the server, which at least one server state indicates an uninstall lock status of the particular application, wherein the particular server digest further corresponds to the client digest;

comparing the particular server digest with the corresponding client digest;

transmitting to the server via the network a state request corresponding to the at least one server state responsive to a determination of a difference between the particular server digest and the corresponding client digest;

receiving from the server via the network the at least one server state;

disabling an uninstall lock on the particular application as indicated by the received at least one server state to enable the removal of the particular application;

storing the received at least one server state as the corresponding at least one client state; and

storing the received particular server digest as the corresponding client digest.

10. The method of claim 6 , wherein the operating system is an operating system for a mobile device.

11. A processor-implemented method performed by a computing device via a particular application operating on an operating system (“OS”) for controlling removal of the particular application, the method comprising:

receiving a disable request call to the particular application from an OS via settings activity;

purposefully delaying a reply to the disable request call for a particular time period, the purposefully delaying comprising performing an operating system sleep call;

after the purposeful delay, switching to a particular activity and stopping the settings activity to prevent removal of the particular application, wherein the particular application includes a client state manager installed on the computing device which communicates with a server state manager operated on a particular server accessible via a network enabled to lock or unlock the particular application;

the particular activity enabling a determining of a device administrator permission for the particular application by a process comprising:

the particular activity enabling a dialog for display responsive to the disable request call instructing a user to contact a network accessible application server to enable removal of the particular application; and

receiving instructions from the network accessible application server to enable removal of the particular application; and

enabling removal of the particular application responsive to the instructions from the network accessible application server.

Assignments (5)
CHANGE OF NAME Recorded Oct 25, 2021
From: LOCATION LABS, INC.
To: LOCATION LABS, LLC.
Reel/Frame 057908/0949 →
CHANGE OF NAME Recorded Oct 25, 2021
From: LOCATION LABS, LLC.
To: SMITH MICRO SOFTWARE, LLC
Reel/Frame 057909/0020 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2021
From: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
To: LOCATION LABS, LLC (F/K/A LOCATION LABS, INC.)
Reel/Frame 055742/0932 →
SECURITY INTEREST Recorded Jan 27, 2017
From: LOCATION LABS, INC.
To: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
Reel/Frame 041522/0972 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2015
From: ANAKATA, JOSEPH; HOWARD, VIRGINIA; ROUMELIOTIS, TASOS; HOTES, SCOTT
To: LOCATION LABS, INC.
Reel/Frame 036717/0519 →
Continuity (5)
Continuation In Part 14089388 · Nov 25, 2013
Continuation In Part 13217093 · Aug 24, 2011
Provisional Application 61984702 · Apr 25, 2014
Related Publication 20150227752A1 · Aug 13, 2015
Related Publication 20170132424A9 · May 11, 2017