IP Library Granted Patent US 12,367,118
Granted Patent B2
US 12,367,118 · App. 18/378,881 · Granted Jul 22, 2025

Mobile device management agent rollback systems and methods

Inventor: Varun Chitre (Bellevue, WA)
Assignee: Esper.io, Inc.
G06F11/2023G06F2201/805
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 12,367,118
App. No.
18/378,881
Granted
Jul 22, 2025
Kind
B2
Abstract

Systems and methods for mobile device management (MDM) agent rollback are disclosed. In some embodiments, a system configured to perform operations including: detecting a triggering event during operation of a first MDM agent; designating the first MDM agent as a bad agent; designating a second MDM agent as a new active agent; determining whether a first data generated by the first MDM agent is useable for continued operations by the second MDM agent; if the first data is determined to be useable by the second MDM agent, then activating the second MDM agent for continued operations using the first data; and if the first data is determined to be not useable by the second MDM agent, then activating the second MDM agent with known good data.

Claims (51)

1. A system for operating one or more mobile device management (MDM) agents, comprising:

at least one processor;

a memory operatively coupled to the at least one processor, the memory storing processor-readable instructions configured to perform operations including at least:

detecting a triggering event during operation of a first MDM agent;

designating the first MDM agent as a bad agent;

designating a second MDM agent as a new active agent;

determining whether a first data generated by the first MDM agent is useable for continued operations by the second MDM agent;

if the first data is determined to be useable by the second MDM agent, then activating the second MDM agent for continued operations using the first data; and

if the first data is determined to be not useable by the second MDM agent, then activating the second MDM agent with known good data.

2. The system of claim 1 , wherein detecting a triggering event during operation of a first MDM agent comprises detecting a crash of the first MDM agent.

3. The system of claim 1 , wherein detecting a triggering event during operation of a first MDM agent comprises detecting a commands reachability failure.

4. The system of claim 1 , wherein detecting a triggering event during operation of a first MDM agent comprises detecting a manual initiation of an MDM agent rollback.

5. The system of claim 1 , wherein designating the first MDM agent as a bad agent comprises changing a designation of the first MDM agent from an active agent to an inactive agent.

6. The system of claim 1 , wherein designating a second MDM agent as a new active agent comprises re-designating the second MDM agent from being an inactive agent to being the new active agent.

7. The system of claim 1 , wherein the second MDM agent comprises an updated version of the first MDM agent.

8. The system of claim 1 , wherein designating the second MDM agent as a new active agent comprises:

determining that the second MDM agent is an older version than the first MDM agent; and

designating the second MDM agent as a new active agent.

9. The system of claim 1 , wherein designating the second MDM agent as a new active agent comprises:

determining that the second MDM agent is not an older version than the first MDM agent;

obtaining an older MDM agent that is older than the first MDM agent; and

re-designating the older MDM agent as the second MDM agent.

10. The system of claim 1 , wherein the first data comprises first replica data stored during operation of the first MDM agent.

11. The system of claim 1 , wherein the known good data comprises second data stored during operation of the second MDM agent.

12. A system for operating one or more mobile device management (MDM) agents, comprising:

at least one processor;

a memory operatively coupled to the at least one processor, the memory storing an MDM master, a first MDM agent designated as an active agent, and a second MDM agent designated as an inactive agent, wherein the MDM master is configured to perform operations including at least:

detecting a triggering event during operation of the first MDM agent;

designating the first MDM agent as a bad agent;

re-designating the second MDM agent as the active agent; and

determining whether to allow the second MDM agent to use data generated by the first MDM agent or to use other data associated with the second MDM agent.

13. The system of claim 12 , wherein detecting a triggering event during operation of the first MDM agent comprises detecting a failure signal from a monitoring tool of the first MDM agent, the failure signal being indicative of an operational failure of the first MDM agent.

14. The system of claim 12 , wherein detecting a triggering event during operation of the first MDM agent comprises detecting that a command from the first MDM agent has failed to provoke a response within a designated timeout period, and detecting that a subsequent remedial action has failed to provoke the response within the designated timeout period.

15. The system of claim 12 , wherein the MDM master comprises one or more privileged components configured to perform one or more operations that require device owner privileges.

16. The system of claim 12 , wherein the MDM master comprises:

one or more privileged components configured to perform one or more operations that require device owner privileges; and

one or more general components configured to perform one or more operations that do not require device owner privileges, at least some of the one or more general components being configured with a business logic of at least one of an MDM managed entity or an MDM managing entity.

17. The system of claim 12 , wherein the MDM master comprises:

one or more privileged components configured to perform one or more operations that require device owner privileges; and

wherein at least one of the first MDM agent or the second MDM agent comprises one or more general components configured to perform one or more operations that do not require device owner privileges, at least some of the one or more general components being configured with a business logic of at least one of an MDM managed entity or an MDM managing entity.

18. The system of claim 12 , wherein determining whether to allow the second MDM agent to use data generated by the first MDM agent or to use other data associated with the second MDM agent comprises:

determining that a first replica data generated by the first MDM agent is useable for continued operations by the second MDM agent.

19. The system of claim 12 , wherein determining whether to allow the second MDM agent to use data generated by the first MDM agent or to use other data associated with the second MDM agent comprises:

determining whether a first data generated by the first MDM agent is useable for continued operations by the second MDM agent;

if the first data is determined to be useable by the second MDM agent, then activating the second MDM agent for continued operations using the first data; and

if the first data is determined to be not useable by the second MDM agent, then activating the second MDM agent with known good data associated with the second MDM agent.

20. The system of claim 12 , wherein detecting a triggering event during operation of a first MDM agent comprises:

at least one of:

detecting a crash of the first MDM agent;

detecting a commands reachability failure of the first MDM agent; or

detecting a manual initiation of an MDM agent rollback.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2025
From: CHITRE, VARUN
To: ESPER.IO, INC.
Reel/Frame 070221/0360 →
Continuity (2)
Provisional Application 63415459 · Oct 12, 2022
Related Publication 20240126664A1 · Apr 18, 2024
References Cited (11)
US 9426120B1 · Kim et al. · 2016 [cited by applicant]
US 9672338B1 · Kim et al. · 2017 [cited by applicant]
US 9762444B1 · Kim · 2017 [cited by applicant]
US 10432665B1 · Yohai et al. · 2019 [cited by applicant]
US 11785469B1 · Gendler · 2023 [cited by applicant]
US 20050132351A1 · Randall et al. · 2005 [cited by applicant]
US 20150319251A1 · Kim · 2015 [cited by examiner]
US 20160191567A1 · Chahal et al. · 2016 [cited by applicant]
US 20180007556A1 · Lu et al. · 2018 [cited by applicant]
US 20230370530A1 · Kalke · 2023 [cited by examiner]
Tatte et al., “Mobile Device Management a Functional Overview.” 2013, International Journal of Computer Science and Application 6.2 (Year: 2013). [cited by examiner]