IP Library Granted Patent US 10,599,409
Granted Patent B2
US 10,599,409 · App. 15/013,438 · Granted Mar 24, 2020

Application lifecycle operation queueing

Inventors: James Seibel (Boston, MA); Kevin LaFlamme (Boston, MA)
Assignee: BlackBerry Limited
G06F8/61G06F9/54G06F21/50G06F21/51G06F21/53G06F21/54G06F21/554G06F21/566G06F21/57G06F21/62
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 10,599,409
App. No.
15/013,438
Granted
Mar 24, 2020
Kind
B2
Abstract

A trusted execution environment on an enterprise-enabled computing device allows invocation of a suite of secure applications (apps) on a computing device in an enterprise without hindering external or non-enterprise apps from running on in the same memory space on the same enterprise computing device. An application wrapper provides an operation queue for storing application lifecycle operations while the trusted execution environment is enabled, and the environment is secured. The application defers lifecycle operation to ensure that all security measures are in place before it is allowed to execute. The operation queue receives entries corresponding to the application lifecycle events, and suspends process execution of the lifecycle operations until the secure environment is ready for the operation queued events to be executed.

Claims (70)

1. In a trusted execution environment for designating a group of trusted applications for exclusive interprocess communication in a computing device, a method for installing an application, comprising:

identifying an installation package for the application, the installation package including installation directives and executable instructions;

identifying a lifecycle operation within the executable instructions;

determining, for the lifecycle operation, execution conditions for initiation of the lifecycle operation; and

inserting a delay into the executable instructions prior to an invocation of the lifecycle operation, the delay being based on satisfaction of the execution conditions;

wherein deferred invocation of the lifecycle operation prevents interprocess communication of the application in the trusted execution environment with other applications in a common address space;

wherein the executable instructions have an original entry point, and further comprising: copying the executable instructions and installation directives to a deferred installation package, the deferred installation package operable to define an operation queue for a plurality of lifecycle operations and to resume execution from the original entry point pending completion of the plurality of lifecycle operations.

2. The method of claim 1 further comprising:

invoking the application for launch;

determining, for the identified lifecycle operation, if each of the execution conditions have been satisfied; and

deferring launch of the lifecycle operations until operations corresponding to the execution conditions have completed.

3. The method of claim 2 further comprising:

defining an operation queue, the operation queue configured for storing entries corresponding to each of a plurality of lifecycle operations.

4. The method of claim 2 further comprising:

identifying a plurality of lifecycle operations;

storing each of the identified lifecycle operations in an operation queue; and

deferring launch of the queued lifecycle operations until each of the execution conditions has been satisfied, the execution conditions based on establishment of the trusted execution environment.

5. The method of claim 1 wherein the delay is a conditional delay, further comprising:

inserting conditional checks for examining completion of each of the execution conditions; and

inserting a branch to an original execution point based on satisfaction of the execution conditions.

6. The method of claim 1 wherein the inserted delay is responsive to an interception of a launch instruction for the application, further comprising returning control to an original execution point following completion of the lifecycle operations.

7. The method of claim 4 wherein the lifecycle operations include parameter lists, further comprising storing, in the operation queue, the parameter lists corresponding to each of the lifecycle operations.

8. The method of claim 1 wherein the dependent operation is a lifecycle operation of normal app execution in the trusted execution environment, the trusted execution environment coexisting with untrusted apps in the common address space.

9. The method of claim 1 further comprising:

identifying an original entry point to the application;

reassigning an original entry point based on the installation package;

directing the reassigned entry point for examining the lifecycle operations; and

redirecting the application to the original entry point after satisfaction of the execution conditions.

10. A computing device responsive to installed applications within a trusted execution environment, comprising:

a memory for installing and executing applications, the applications including processor instructions;

a processor for interpreting and executing the processor instructions;

an installation package for an application, the installation package including installation directives and executable instructions; and

installation instructions for identifying a lifecycle operation within the executable instructions, determining execution conditions for initiation of the lifecycle operation, the installation instructions further operable to insert a delay into the executable instructions prior to a launch of the lifecycle operation, the delay being based on satisfaction of the execution conditions;

wherein deferred invocation of the lifecycle operation prevents interprocess communication of the application in the trusted execution environment with other applications in a common address space;

wherein the executable instructions have an original entry point, and further comprising:

copying the executable instructions and installation directives to a deferred installation package, the deferred installation package operable to define an operation queue for a plurality of lifecycle operations and to resume execution from the original entry point pending completion of the plurality of lifecycle operations.

11. The device of claim 10 further comprising:

a graphical user interface (GUI) on the device, the GUI configured to invoke the application for launch, the computing device further configured to:

determine, for the identified lifecycle operation, if each of the execution conditions have been satisfied; and

defer launch of the lifecycle operation until operations corresponding to the execution conditions have completed.

12. The device of claim 11 further comprising:

an operation queue configured for storing entries corresponding to each of a plurality of lifecycle operations.

13. The device of claim 11 further comprising:

application startup instructions operable to:

identify a plurality of lifecycle operations;

store each of the identified lifecycle operations in an operation queue; and

defer launch of the lifecycle operations until operations corresponding to the execution conditions have completed, the execution conditions defining the trusted execution environment for ensuring secure execution of the lifestyle operations.

14. The device of claim 10 wherein the delay is a conditional delay, the installation instructions further configured to:

insert conditional checks for examining completion of each of the execution conditions; and

insert a branch to an original execution point based on satisfaction of the execution conditions.

15. The device of claim 10 wherein the executable instructions have an original entry point, and further comprising:

a deferred installation package, the deferred installation package operable to define an operation queue for a plurality of lifecycle operations and to defer execution from the original entry point pending completion of the plurality of lifecycle operations, the installation package responsive to the installation instructions for transferring control to the deferred installation package.

16. The device of claim 15 wherein the inserted delay is responsive to an interception of a launch instruction for the application, further comprising returning control to an original execution point following completion of the lifecycle operations.

17. The method of claim 1 further comprising:

identifying an original entry point to the application;

reassigning an original entry point based on the installation package;

directing the reassigned entry point for examining the lifecycle operations; and

redirecting the application to the original entry point after satisfaction of the execution conditions.

18. A computer program product having instructions stored on a non-transitory computer readable storage medium for performing, in a trusted execution environment, a method of installing an application on a computing device, the method comprising:

identifying an installation package for the application, the installation package including installation directives and executable instructions;

identifying a lifecycle operation within the executable instructions;

determining, for the lifecycle operation, execution conditions for initiation of the lifecycle operation;

upon invoking the application for launch, determining, for the lifecycle operation, if each of the execution conditions have been satisfied; and

deferring launch of the application until operations corresponding to the execution conditions have completed;

wherein deferred launch of the application prevents interprocess communication of the application in the trusted execution environment with other applications in a common address space;

wherein the executable instructions have an original entry point, and further comprising:

copying the executable instructions and installation directives to a deferred installation package, the deferred installation package operable to define an operation queue for a plurality of lifecycle operations and to resume execution from the original entry point pending completion of the plurality of lifecycle operations.

19. The method of claim 1 , further comprising:

determining if the deferred lifecycle operation continues to be relevant to process execution; and

omitting the deferred lifecycle operation if execution would be ineffective.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: APPERIAN, INC.
To: BLACKBERRY LIMITED
Reel/Frame 039613/0264 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2016
From: SEIBEL, JAMES; LAFLAMME, KEVIN
To: APPERIAN, INC.
Reel/Frame 039362/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2016
From: SEIBEL, JAMES; LAFLAMME, KEVIN
To: APPERIAN, INC.
Reel/Frame 039280/0305 →
Continuity (1)
Related Publication 20170220331A1 · Aug 3, 2017
Cited By (1)
US 12,407,519