IP Library Granted Patent US 9,319,270
Granted Patent B2
US 9,319,270 · App. 13/861,653 · Granted Apr 19, 2016

Configuration of third party applications in a sandboxed environment

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,319,270
App. No.
13/861,653
Granted
Apr 19, 2016
Kind
B2
Abstract

A profile manager application is installed in an electronic device that fetches configuration profiles for third party applications from a remote server. Using code libraries incorporated in the third party applications and URL based commands, the profile manager application communicates with the third party applications to configure them according to the corresponding configuration profiles, even though the third party applications are running in a sandboxed environment.

Claims (83)

1. A non-transitory memory having stored thereon a profile manager, said profile manager comprising executable instructions that direct an electronic device to at least:

receive a configuration profile from a remote server;

receive from the remote server information specifying a Uniform Resource Locator (URL) based command scheme; and

configure a first application that runs in a sandboxed environment on the device based on the configuration profile by making a call on the electronic device to the first application, the call being made with a URL based command that conforms to the URL based command scheme, wherein the URL based command specifies one or more settings of the configuration profile, wherein an operating system of the electronic device determines that the URL based command corresponds to the first application and passes the URL based command to the first application, the first application including a URL handler capable of processing the URL based command;

wherein the URL based command scheme is a command scheme that the first application registers with the operating system of the device prior to the call, independently of the profile manager; and

wherein the profile manager is a second application that runs in the sandboxed environment, and is capable of configuring applications without being programmed with specific knowledge about the applications.

2. The non-transitory memory of claim 1 , wherein the operating system responds to the URL based command by opening the first application and calling the URL handler.

3. The non-transitory memory of claim 1 , wherein the profile manager is further configured to receive, from the first application, a confirmation that the first application has been configured.

4. The non-transitory memory of claim 1 , wherein the profile manager is further configured, prior to receiving the configuration profile, to:

receive a notification of the configuration profile from the server; and

display said notification on the device.

5. The non-transitory memory of claim 1 , wherein the profile manager is further configured, prior to receiving the configuration profile, to:

receive information about the configuration profile from the server; and

display said information on the device.

6. The non-transitory memory of claim 1 , wherein the configuration profile is:

a new configuration profile;

an updated configuration profile;

a complete configuration profile;

a partial configuration profile; or

a null configuration profile.

7. The non-transitory memory of claim 1 , wherein the profile manager is further configured to store one or more prior configuration profiles that have been previously used by the first application, wherein the profile manager further calls the first application with one or more settings of a prior configuration profile.

8. The non-transitory memory of claim 1 , wherein the configuration profile is:

compressed;

encrypted; or

both compressed and encrypted.

9. An electronic device comprising non-transient memory storing computer readable code for configuring applications in a sandboxed environment on the electronic device, the code comprising instructions, which, when executed by one or more processors in the device, cause the device to at least:

receive, by execution of a profile manager application that runs in the sandboxed environment on the device, a configuration profile from a remote server, wherein the profile manager application is capable of configuring applications without being programmed with specific knowledge about the applications;

receive, by execution of the profile manager application, information specifying a Uniform Resource Locator (URL) based command scheme from a remote server;

call a target application that runs in the sandboxed environment, the call being made with a URL based command that includes one or more settings of the configuration profile;

extract said settings of the configuration profile from the URL based command; and

configure the target application with said extracted settings of the configuration profile;

wherein the URL based command scheme is a command scheme that the target application has registered with an operating system of the device prior to the call, independently of the profile manager application;

wherein the operating system of the electronic device determines that the URL based command corresponds to the target application and passes the URL based command to the target application for processing by a URL handler of the target application.

10. The electronic device of claim 9 , further configured, prior to receiving the configuration profile, to:

receive a notification of the configuration profile from the server; and

display said notification.

11. The electronic device of claim 9 , further configured, prior to receiving the configuration profile, to:

receive information about the configuration profile from the server; and

display said information.

12. A method for configuring applications in a sandboxed environment on an electronic device, comprising:

receiving, by a profile manager running in a sandboxed environment on the device, a configuration profile from a remote server, said profile manager capable of configuring applications without being programmed with specific knowledge about the applications;

receiving, by the profile manager, from a remote server, information specifying a Uniform Resource Locator (URL) based command scheme;

calling, by the profile manager, a target application that runs in the sandboxed environment on the device, said call being made with a URL based command that includes one or more settings of the configuration profile and conforms to the command scheme, the command scheme previously having been registered with an operating system of the device by the target application, independently from the profile manager, wherein calling the target application causes the operating system to (1) determine that the URL based command corresponds to the target application and (2) pass the URL based command to the target application for processing by a URL handler of the target application.

13. The method of claim 12 further comprising:

extracting, by a library in the target application, said settings of the configuration profile from the command; and

configuring, by the library, the target application with said settings of the configuration profile.

14. The method of claim 12 , wherein the configuration profile is a null configuration profile or a prior configuration profile previously used by the target application, thereby resulting in the calling step being an instruction to remove a current configuration profile from the target application.

15. The method of claim 12 , wherein the configuration profile is a partial configuration profile, thereby resulting in the calling step being an instruction to update a current configuration profile in the target application.

16. A system for configuring applications in a sandboxed environment comprising:

a server storing a configuration profile and command scheme data specifying a Uniform Resource Locator (URL) based command scheme for an application;

a profile manager configured to run in a sandboxed environment in an electronic device, the profile manager comprising executable instructions stored in non-transient memory; and

a library of code in the application, the library embodied in one or more non-transient computer-readable media;

wherein the profile manager is configured to at least:

receive the configuration profile from the server;

receive the command scheme from the server; and

call the application with a command that conforms to the URL based command scheme and includes one or more settings of the configuration profile, the URL based command scheme having been registered by the application with an operating system of the device prior to the call, independently of the profile manager, wherein calling the application causes the operating system to (1) determine that the URL based command corresponds to the application, and (2) pass the URL based command to the application;

and wherein the library is configured to at least:

extract said settings of the configuration profile from the command; and

configure the application with said extracted settings of the configuration profile.

17. Non-transient memory storing computer readable code for configuring third party applications in a sandboxed environment on an electronic device, the code comprising instructions formulated as at least a profile manager and a library, the profile manager capable of configuring applications without being programmed with specific knowledge about the applications, wherein the instructions, when executed by one or more processors in the device, cause the device to:

register, by the library when part of an application running in a sandboxed environment, a Uniform Resource Locator (URL) based command scheme with an operating system of the device;

receive, by execution of the profile manager in the sandboxed environment in the device, a configuration profile from a remote server;

receive, by execution of the profile manager, data specifying the URL based command scheme from the server;

call the application, the call being made with a URL based command that includes one or more settings of the configuration profile and conforms to the URL based command scheme, wherein calling the application causes the operating system to (1) determine that the URL based command corresponds to the application and (2) pass the URL based command to the application;

extract, by execution of the library, the one or more settings of the configuration profile from the command; and

configure, by execution of the library, the application with said extracted one or more settings of the configuration profile.

18. The memory of claim 17 , wherein the instructions further cause the application to send, to the profile manager, a confirmation that the application has been configured.

19. A non-transitory memory having stored thereon an application configured to run in a sandboxed environment on an electronic device, the application comprising computer readable code, which, when executed by one or more processors in the device, causes the application to:

register a URL scheme with an operating system of the device;

receive, in a URL handler, a command from a profile manager in the device, the profile manager capable of configuring applications without being programmed with specific knowledge about the applications, the command conforming to the URL scheme and including one or more settings of a complete, partial, prior or null configuration profile, wherein the operating system determines that the command conforms to the URL scheme and passes the command to the application;

extract said settings of the configuration profile from the command;

configure itself with said settings of the configuration profile; and

send a confirmation that it has been configured to the profile manager;

wherein the profile manager is a further application that runs in the sandboxed environment.

20. A non-transitory computer readable medium having stored thereon:

a code library that is adapted to be added to an application to enable the application, following installation thereof on a device, to be configured by a profile manager installed on the device, the profile manager capable of configuring applications without being programmed with specific knowledge about the applications;

wherein the code library is configured to direct the device to at least:

register a URL scheme with an operating system of the device;

receive, in a URL handler, a command from the profile manager, the command conforming to the URL scheme and including one or more settings of a complete, partial, prior or null configuration profile, wherein the profile manager provides the command to the application by placing a call to the application, said call causing the operating system to determine that the command corresponds to the application and to pass the command to the application;

extract said one or more settings of the configuration profile from the command;

configure the application with said one or more extracted settings of the configuration profile; and

send a confirmation that the application has been configured to the profile manager;

wherein the profile manager and the application run in a sandboxed environment.

Assignments (18)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2025
From: IVANTI SECURITY HOLDINGS LLC
To: IVANTI, INC.
Reel/Frame 071958/0203 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded May 5, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; CHERWELL SOFTWARE, LLC
Reel/Frame 071176/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2025
From: IVANTI, INC.
To: IVANTI SECURITY HOLDINGS LLC
Reel/Frame 071180/0690 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
2025-1 SECOND LIEN SECURITY AGREEMENT Recorded May 5, 2025
From: IVANTI SECURITY INTERMEDIATE HOLDINGS LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0498 →
SECURITY INTEREST Recorded May 3, 2025
From: IVANTI SECURITY HOLDINGS LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0164 →
RELEASE OF SECURITY INTEREST Recorded May 2, 2025
From: ALTER DOMUS (US) LLC
To: IVANTI SECURITY HOLDINGS LLC
Reel/Frame 071162/0130 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0436 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: HEAT SOFTWARE USA INC.
Reel/Frame 054560/0713 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0735 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: HEAT SOFTWARE USA INC.
Reel/Frame 054560/0744 →
MERGER Recorded Apr 19, 2018
From: HEAT SOFTWARE USA INC.
To: IVANTI, INC.
Reel/Frame 045589/0203 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: HEAT SOFTWARE USA INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041052/0735 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: HEAT SOFTWARE USA INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041459/0436 →
MERGER AND CHANGE OF NAME Recorded Jan 18, 2017
From: FRONTRANGE SOLUTIONS INC.; HEAT SOFTWARE USA INC.
To: HEAT SOFTWARE USA INC.
Reel/Frame 041010/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: ABSOLUTE SOFTWARE CORPORATION
To: FRONTRANGE SOLUTIONS INC.
Reel/Frame 037424/0880 →