IP Library Granted Patent US 9,185,554
Granted Patent B2
US 9,185,554 · App. 12/876,214 · Granted Nov 10, 2015

System and methods to store, retrieve, manage, augment and monitor applications on appliances

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,185,554
App. No.
12/876,214
Granted
Nov 10, 2015
Kind
B2
Abstract

Systems and methods for managing applications on an appliance are provided. A server is in communication with appliances. The server is also coupled to databases which include appliance information, as well as application data. A user may authenticate using the appliance. A set of permissions may be associated with the user. The server then supervises information exchanged between the appliance and the server, as well as application functionality upon the appliance, by supplementing the applications downloaded to the appliance with supplemental code, referred to hereafter as an AppGuard. The AppGuard is tailored, using information related to the appliance, to the appliance type in order to ensure proper functionality. The AppGuard is executed upon installation, and collects device information for validation. After validation, the application may be run. Additionally, management of the applications may include augmenting, deleting, disabling or authorizing the application.

Claims (57)

1. A method for controlling an application on a mobile device, the method comprising:

intercepting, at a wrapper, a request to perform an action in relation to an application configured on a mobile device, the application being configured with the wrapper;

sending, by the wrapper, a request for permission data to a server in response to interception of the request to perform an action, the request for permission data relating to permission settings associated with the mobile device, wherein the request for permission data includes data identifying the mobile device;

receiving the permission data at the wrapper from the server; and

determining whether to perform the action on the basis of the received permission data.

2. A method according to claim 1 , wherein the action comprises access to the application.

3. A method according to claim 2 , wherein access to the application comprises execution of the application.

4. A method according to claim 1 , wherein the action comprises access to data associated with the application.

5. A method according to claim 1 , wherein the application and the wrapper are compiled as an executable.

6. A method according to claim 5 , wherein the executable is signed using a signature key.

7. A method according to claim 1 , wherein the wrapper is inserted into the application as binary code.

8. A method according to claim 1 , wherein the application comprises an archive and the archive comprises the wrapper.

9. A method according to claim 8 , wherein the application is signed using a signature key.

10. A method according to claim 1 , further comprising determining whether to disable or delete the application and/or data associated with the application based on the received permission data.

11. A method for controlling an application hold on a mobile device, the method comprising:

receiving, at a server, a request from a mobile device to download an application;

providing the application to the mobile device in response to receipt of the request, the application being configured with a wrapper;

maintaining, at the server, permission settings associated with the application and the mobile device;

receiving, at the server, a request from the mobile device for permission to perform an action in relation to the application, the request for permission to perform an action including an identifier of the mobile device, the request to perform an action having been sent by the wrapper;

based on the received identifier and the permission settings, providing, to the mobile device, permission data indicating whether performance of the action by the mobile device is permitted.

12. A method according to claim 11 , wherein the action comprises access to the application.

13. A method according to claim 12 , wherein access to the application comprises execution of the application.

14. A method according to claim 11 , wherein the action comprises access to data associated with the application.

15. A method according to claim 11 , wherein providing the application to the mobile device comprises compiling the wrapper together with application code associated with the application to produce an executable.

16. A method according to claim 15 , wherein providing the application to the mobile device comprises decompiling the application to obtain the application code associated with the application.

17. A method according to claim 15 , further comprising signing the executable using a signature key.

18. A method according to claim 11 , wherein providing the application to the mobile device comprises inserting the wrapper into the application as binary code.

19. A method according to claim 18 , further comprising signing the application using a signature key following insertion of the wrapper into the application as binary code.

20. A method according to claim 11 , wherein the application comprises an archive and providing the application to the mobile device comprises inserting the wrapper into the archive.

21. A method according to claim 20 , further comprising signing the application using a signature key following insertion of the wrapper into the archive.

22. A method according to claim 20 , wherein the archive is a Java archive.

23. A method according to claim 11 , further comprising receiving, at the server, environment data relating to the environment of the mobile device, and wherein the permission data is provided to the mobile device on the basis of the received identifier, the permission settings and the environment data.

24. A method according to claim 11 , wherein the permission data indicates that the application and/or data associated with the application is to be disabled or deleted from the mobile device.

25. A mobile device comprising:

a supplemented application, the supplemented application comprising an original application modified with a wrapper, the wrapper being configured to:

intercept a request to perform an action in relation to the original application;

send a request for permission data to a server in response to interception of the request to perform an action, the request for permission data relating to permission settings associated with the mobile device, wherein the request for permission data includes data identifying the mobile device;

receive the permission data from the server; and

determine whether to perform the action on the basis of the received permission data.

26. An apparatus for controlling an application held on a mobile device, comprising:

a server configured to:

receive a request from a mobile device to download an application;

provide the application to the mobile device in response to receipt of the request, the application being configured with a wrapper;

maintain permission settings associated with the application and the mobile device;

receive a request from the mobile device for permission to perform an action in relation to the application, the request for permission to perform an action including an identifier of the mobile device, the request for permission to perform an action having been sent by the wrapper;

provide to the mobile device permission data indicating whether performance of the action by the mobile device is permitted based on the received identifier and the permission settings.

27. A computer program product comprising a non-transitory computer-readable storage medium having computer readable instructions stored thereon, the computer readable instructions being executable by a computerized device to cause the computerized device to perform a method for controlling an application on a mobile device, the method comprising:

intercepting, at a wrapper, a request to perform an action in relation to an application configured on a mobile device, the application being configured with the wrapper;

sending, by the wrapper, a request for permission data to a server in response to interception of the request to perform an action, the request for permission data relating to permission settings associated with mobile device, wherein the request for permission data includes data identifying the mobile device;

receiving the permission data at the wrapper from the server; and

determining whether to perform the action on the basis of the received permission data.

28. A computer program product comprising a non-transitory computer-readable storage medium having computer readable instructions stored thereon, the computer readable instructions being executable by a computerized device to cause the computerized device to perform a method for controlling an application held on a mobile device, the method comprising:

receiving, at a server, a request from a mobile device to download an application;

providing the application to the mobile device in response to receipt of the request, the application being configured with a wrapper;

maintaining, at the server, permission settings associated with the application and the mobile device;

receiving, at the server, a request from the mobile device for permission to perform an action in relation to the application, the request for permission to perform an action including an identifier of the mobile device, the request to perform an action having been sent by the wrapper;

based on the received identifier and the permission settings, providing, to the mobile device, permission data indicating whether performance of the action by the mobile device is permitted.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2019
From: GOOD TECHNOLOGY HOLDINGS LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 048272/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2017
From: APPCENTRAL, INC.
To: GOOD TECHNOLOGY HOLDINGS LIMITED
Reel/Frame 044961/0768 →
CHANGE OF NAME Recorded Sep 25, 2012
From: ONDEEGO, INC.
To: APPCENTRAL, INC.
Reel/Frame 029033/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2010
From: NAGPAL, AASHIN; SINGER, KEN C.; ASSENMACHER, HOLGER
To: ONDEEGO, INC.
Reel/Frame 025412/0098 →