IP Library Granted Patent US 10,395,027
Granted Patent B2
US 10,395,027 · App. 15/373,603 · Granted Aug 27, 2019

Co-existence of management applications and multiple user device management

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,395,027
App. No.
15/373,603
Granted
Aug 27, 2019
Kind
B2
Abstract

Various examples for providing execution of both a first management application and a second management application on a client device are provided. In one example, a client device can be configured to identify that a first management application, such as a legacy management application, installed on the client device has management privileges with an operating system of the client device. As the first management application is configured to generate a terminate command in response to detection of the second management application, the terminate command can be intercepted prior to a receipt of the terminate command by the operating system. As a result, the operating system does not terminate execution of the second management application on the client device, thereby allowing both the first management application and the second management application to co-exist on the client device.

Claims (31)

1. A non-transitory computer-readable medium embodying program code executable in a client device that, when executed by the client device, causes the client device to provide execution of both a first management application and a second management application on the client device by:

identifying that the first management application installed on the client device has device management privileges with an operating system of the client device through enrollment of the client device with a first remote service, the first management application being configured to generate a terminate command that terminates execution of any other management application on the client device;

installing the second management application on the client device, the second management application being configured to obtain device management privileges with the operating system of the client device through enrollment of the client device with a second remote service; and

intercepting the terminate command prior to a receipt of the terminate command by the operating system such that the operating system does not terminate execution of the second management application on the client device.

2. The non-transitory computer-readable medium of claim 1 , further comprising program code that, when executed by the client device, causes the client device to communicate a response to the first management application in response to the terminate command being intercepted.

3. The non-transitory computer-readable medium of claim 1 , wherein intercepting the terminate command is performed by one of: the second management application or a sleeper agent application.

4. The non-transitory computer-readable medium of claim 1 , further comprising program code that, when executed by the client device, causes the client device to install a driver through the operating system of the client device that monitors at least one predefined application programming interface (API) call.

5. The non-transitory computer-readable medium of claim 4 , wherein intercepting the terminate command is performed by the driver in response to a detection of the at least one predefined API call.

6. The non-transitory computer-readable medium of claim 1 , further comprising program code that, when executed by the client device, causes the client device to uninstall the first management application on the client device.

7. The non-transitory computer-readable medium of claim 1 , wherein the terminate command is generated by the first management application periodically or in response to detection of the second management application.

8. A system that provides execution of both a first management application and a second management application on a client device, comprising:

the client device comprising a hardware processor; and

program instructions executable in the client device that, when executed by the client device, cause the client device to:

identify that the first management application installed on the client device has device management privileges with an operating system of the client device through enrollment of the client device with a first remote service, the first management application being configured to generate a terminate command that terminates execution of the second management application on the client device;

installing the second management application on the client device, the second management application being configured to obtain device management privileges with the operating system of the client device through enrollment of the client device with a second remote service; and

intercept the terminate command prior to a receipt of the terminate command by the operating system such that the operating system does not terminate execution of the second management application on the client device.

9. The system of claim 8 , further comprising program instructions that, when executed by the client device, cause the client device to communicate a response to the first management application in response to the terminate command being intercepted.

10. The system of claim 8 , wherein intercepting the terminate command is performed by one of: the second management application or a sleeper agent application.

11. The system of claim 8 , further comprising program instructions that, when executed by the client device, cause the client device to install a driver through the operating system of the client device that monitors at least one predefined application programming interface (API) call.

12. The system of claim 11 , wherein intercepting the terminate command is performed by the driver in response to a detection of the at least one predefined API call.

13. The system of claim 8 , further comprising program instructions that, when executed by the client device, cause the client device to uninstall the first management application on the client device.

14. The system of claim 8 , wherein the terminate command is generated by the first management application periodically or in response to detection of the second management application.

15. A computer-implemented method for executing both a first management application and a second management application on a client device, comprising:

identifying that the first management application installed on the client device has device management privileges with an operating system of the client device through enrollment of the client device with a first remote service, the first management application being configured to generate a terminate command that terminates execution of any other management application on the client device;

installing the second management application on the client device, the second management application being configured to obtain device management privileges with the operating system of the client device through enrollment of the client device with a second remote service; and

intercepting the terminate command prior to a receipt of the terminate command by the operating system such that the operating system does not terminate execution of the second management application on the client device.

16. The computer-implemented method of claim 15 , further comprising communicating a response to the first management application in response to the terminate command being intercepted.

17. The computer-implemented method of claim 15 , wherein intercepting the terminate command is performed by one of: the second management application or a sleeper agent application.

18. The computer-implemented method of claim 15 , further comprising causing the client device to install a driver through the operating system of the client device that monitors at least one predefined application programming interface (API) call.

19. The computer-implemented method of claim 18 , wherein intercepting the terminate command is performed by the driver in response to a detection of the at least one predefined API call.

20. The computer-implemented method of claim 15 , further comprising causing the client device to uninstall the first management application on the client device.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2016
From: ROSZAK, JASON; MURTHY, VARUN; SHANTHARAM, SHRAVAN; WATTS, BLAKE; REGULA, KALYAN
To: VMWARE, INC.
Reel/Frame 040699/0024 →