IP Library Granted Patent US 12,399,696
Granted Patent B2
US 12,399,696 · App. 17/449,536 · Granted Aug 26, 2025

Automatic updating of application functionality

Inventors: Mohammed Lazim (Bangalore, IN); Madhavan Madhavan Bhattathiri (Bangalore, IN); Sruthi Surendran (Bangalore, IN)
Assignee: Omnissa, LLC
G06F8/65G06F8/36G06F8/71
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,399,696
App. No.
17/449,536
Granted
Aug 26, 2025
Kind
B2
Abstract

An application incorporating a software development kit library is updated by first obtaining an updated binary corresponding to the library. The application is then unpackaged and subsequently repackaged with the updated library. The updated application can be distributed to managed devices by a management service.

Claims (73)

1. A system, comprising:

at least one computing device comprising at least one processor; and

program instructions executable by the at least one computing device that, when executed, direct the at least one computing device to:

obtain a binary file corresponding to an updated version of a software development kit (SDK) library, the SDK library providing unified endpoint management (UEM) capabilities to an application incorporating the SDK library;

identify a binary file corresponding to the application incorporating the SDK library;

determine features of the SDK library that are utilized by the application;

determine that the application is to be updated by confirming that none of the features utilized by the application will stop functioning if the updated version of the SDK library is integrated into the application;

request an SDK injection service to integrate the updated version of the SDK library into the application without requiring an application developer of the application to create an updated version of the application, wherein the SDK injection service is configured to:

download the binary file corresponding to the application from an application repository;

unpackage the binary file corresponding to the application;

locate a binary file corresponding to a previous version of the SDK library in the binary file corresponding to the application by searching for a signature corresponding to the SDK library;

replace the binary file corresponding to the previous version of the SDK library with the binary file corresponding to the updated version of the SDK library;

update a version of the application on the application repository to indicate that the application has been updated with the updated version of the SDK library; and

re-sign the application with a developer signature of the application developer;

initiate distribution of an updated binary file corresponding to the application incorporating the SDK library to a plurality of devices that are managed by a management service;

monitor execution of the application on one or more of the plurality of devices to detect initialization failures of the features of the SDK library used by the application; and

cease the distribution of the updated binary file to the plurality of devices based on detecting the initialization failures.

2. The system of claim 1 , wherein the program instructions initiate the distribution of the updated binary file by posting a notification to the management service, wherein the management service assigns the updated binary file corresponding to the application to the plurality of devices that are enrolled as managed devices.

3. The system of claim 1 , wherein the program instructions that cause the at least one computing device to monitor the execution of the application include program instructions to at least:

receive, from a device from the plurality of devices, an indication that the application incorporating the SDK library has crashed; and

determine that a crash rate associated with the application incorporating the SDK library among the plurality of devices exceeds a threshold, and

wherein the program instructions that cause the at least one computing device to cease the distribution of the updated binary file include program instructions to at least:

notify the management service to stop distributing the updated binary file of the application incorporating the SDK library.

4. The system of claim 1 , wherein the program instructions initiate the distribution of the updated binary file to the plurality of devices by placing a command in a respective command queue corresponding to the plurality of devices that instructs respective ones of the plurality of devices to download the updated binary file corresponding to the application from the application repository.

5. The system of claim 1 , wherein the initialization failures comprise a failure of the SDK library or a feature implemented by the SDK library that does not cause the application to crash.

6. A method comprising

obtaining a binary file corresponding to an updated version of a software development kit (SDK) library, the SDK library providing unified endpoint management (UEM) capabilities to an application incorporating the SDK library;

identifying a binary file corresponding to the application incorporating the SDK library;

determining features of the SDK library that are utilized by the application;

determining that the application is to be updated by confirming that none of the features utilized by the application will stop functioning if the updated version of the SDK library is integrated into the application;

requesting an SDK injection service to integrate the updated version of the SDK library into the application without requiring an application developer of the application to create an updated version of the application, wherein the SDK injection service is configured to:

download the binary file corresponding to the application from an application repository;

unpackage the binary file corresponding to the application;

locate a binary file corresponding to a previous version of the SDK library in the binary file corresponding to the application by searching for a signature corresponding to the SDK library;

replace the binary file corresponding to the previous version of the SDK library with the binary file corresponding to the updated version of the SDK library;

update a version of the application on the application repository to indicate that the application has been updated with the updated version of the SDK library; and

re-sign the application with a developer signature of the application developer;

initiating distribution of an updated binary file corresponding to the application incorporating the SDK library to a plurality of devices that are managed by a management service;

monitoring execution of the application on one or more of the plurality of devices to detect initialization failures of the features of the SDK library used by the application; and

ceasing the distribution of the updated binary file to the plurality of devices based on detecting the initialization failures.

7. The method of claim 6 , wherein the distribution of the updated binary file is initiated by posting a notification to the management service, wherein the management service assigns the updated binary file corresponding to the application to the plurality of devices that are enrolled as managed devices.

8. The method of claim 6 , wherein the monitoring the execution of the application includes:

receiving, from a device from the plurality of devices, an indication that the application incorporating the SDK library has crashed;

determining that a crash rate associated with the application incorporating the SDK library among the plurality of devices exceeds a threshold; and

wherein the ceasing the distribution of the updated binary file further includes:

notifying the management service to stop distributing the updated binary file of the application incorporating the SDK library.

9. The method of claim 6 , further comprising re-packaging the binary file corresponding to the application incorporating the binary file corresponding to the updated version of the SDK library to create the updated binary file.

10. The method of claim 6 , wherein the initiating the distribution of the updated binary file comprises placing a command in a respective command queue corresponding to the plurality of devices that instructs respective ones of the plurality of devices to download the updated binary file corresponding to the application from the application repository.

11. The method of claim 6 , wherein the initialization failures comprise a failure of the SDK library or a feature implemented by the SDK library that does not cause the application to crash.

12. A non-transitory computer-readable medium embodying program instructions executable by at least one computing device, the instructions, when executed, causing the at least one computing device to at least:

obtain a binary file corresponding to an updated version of a software development kit (SDK) library, the SDK library providing unified endpoint management (UEM) capabilities to an application incorporating the SDK library;

identify a binary file corresponding to the application incorporating the SDK library;

determine features of the SDK library that are utilized by the application;

determine that the application is to be updated by confirming that none of the features utilized by the application will stop functioning if the updated version of the SDK library is integrated into the application;

request an SDK injection service to integrate the updated version of the SDK library into the application without requiring an application developer of the application to create an updated version of the application, wherein the SDK injection service is configured to:

download the binary file corresponding to the application from an application repository;

unpackage the binary file corresponding to the application;

locate a binary file corresponding to a previous version of the SDK library in the binary file corresponding to the application by searching for a signature corresponding to the SDK library;

replace the binary file corresponding to the previous version of the SDK library with the binary file corresponding to the updated version of the SDK library;

update a version of the application on the application repository to indicate that the application has been updated with the updated version of the SDK library; and

re-sign the application with a developer signature of the application developer;

initiate distribution of an updated binary file corresponding to the application incorporating the SDK library to a plurality of devices that are managed by a management service;

monitor execution of the application on one or more of the plurality of devices to detect initialization failures of the features of the SDK library used by the application; and

cease the distribution of the updated binary file to the plurality of devices based on detecting the initialization failures.

13. The non-transitory computer-readable medium of claim 12 , wherein the program instructions cause the distribution of the updated binary file to be initiated by posting a notification to the management service, wherein the management service assigns the updated binary file corresponding to the application to the plurality of devices that are enrolled as managed devices.

14. The non-transitory computer-readable medium of claim 12 , wherein the program instructions that cause the at least one computing device to monitor the execution of the application include program instructions to at least:

receive, from a device from the plurality of devices, an indication that the application incorporating the SDK library has crashed;

determine that a crash rate associated with the application incorporating the SDK library among the plurality of devices exceeds a threshold; and

wherein the program instructions that cause the at least one computing device to cease the distribution of the updated binary file include program instructions to at least:

notify the management service to stop distributing the updated binary file of the application incorporating the SDK library.

15. The non-transitory computer-readable medium of claim 12 , wherein the program instructions further cause the at least one computing device to at least:

re-package the binary file corresponding to the application incorporating the binary file corresponding to the updated version of the SDK library to create the updated binary file.

16. The non-transitory computer-readable medium of claim 12 , wherein the initialization failures comprise a failure of the SDK library or a feature implemented by the SDK library that does not cause the application to crash.

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/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2021
From: LAZIM, MOHAMMED; BHATTATHIRI, MADHAVAN MADHAVAN; SURENDRAN, SRUTHI
To: VMWARE, INC.
Reel/Frame 057658/0470 →