Mobile application management by run-time insertion of a substitute application class loader into a mobile application process

US10698703B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10698703-B2
Application numberUS-201816145927-A
CountryUS
Kind codeB2
Filing dateSep 28, 2018
Priority dateSep 28, 2018
Publication dateJun 30, 2020
Grant dateJun 30, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Starting execution of a mobile application on a mobile device causes the mobile application to invoke an initialization method that i) creates a substitute application class loader, and ii) replaces a default application class loader for the mobile application with the substitute application class loader. The substitute application class loader processes a request for a requested object class defined by the mobile application by returning, instead of the requested object class, an alternate object class that is different from the requested object class and that is defined by mobile application management logic also executing on the mobile device. Continued execution of the mobile application on the mobile device includes performing at least one mobile application management action using the alternate object class returned by the substitute application class loader.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of providing mobile application management of a mobile application, comprising: starting, by an operating system of a mobile device, execution of the mobile application on processing circuitry of the mobile device; invoking, by the mobile application in response to the operating system of the mobile device starting execution of the mobile application on the processing circuitry of the mobile device, an initialization method, wherein the initialization method i) creates a substitute application class loader, and ii) replaces a default application class loader for the mobile application with the substitute application class loader; processing, by the substitute application class loader in response to the replacement of the default application class loader with the substitute class loader, at least one request, for at least one requested object class that is defined by the mobile application, at least in part by returning, instead of the requested object class, an alternate object class that i) is different from the requested object class, and ii) is defined by mobile application management logic also executing on the processing circuitry of the mobile device, wherein the alternate object class returned by the substitute application class loader operates as a proxy for the requested object class, and intercepts every call made to methods of the requested object class, and wherein the alternate object class returned by the substitute application class loader processes at least one intercepted call to a method of the requested object class by redirecting the intercepted call to an alternate method within the mobile application management logic; and continuing execution of the mobile application on the processing circuitry of the mobile device using the alternate object class returned by the substitute class loader, at least in part by performing at least one mobile application management action using the alternate object class returned by the substitute class loader. 2. The method of claim 1 , wherein performing the mobile application management action using the alternate object class returned by the substitute application class loader includes: creating at least one instance of the alternate object class returned by the substitute application class loader; and executing the instance of the alternate object class returned by the substitute application class loader on the processing circuitry of the mobile device. 3. The method of claim 2 , further comprising: wherein starting execution of the mobile application on the processing circuitry of the mobile device includes the operating system of the mobile device creating a process that is used by the operating system to execute the mobile application on the processing circuitry of the mobile device; wherein the default class loader is assigned, by the operating system prior to invocation of the initialization method, to the process used by the operating system to execute the mobile application on the processing circuitry of the mobile device; and wherein the initialization method replaces the default application class loader with the substitute application class loader at least in part by assigning the substitute application class loader to the process used by the operating system to execute the mobile application on the processing circuitry of the mobile device. 4. The method of claim 3 , wherein the initialization method uses Java Reflection to assign the substitute application class loader to the process used by the operating system to execute the mobile application on the processing circuitry of the mobile device. 5. The method of claim 4 , wherein the initialization method is the first program code of the mobile application that is executed when execution of the mobile application is started by the operating system of the mobile device. 6. The method of claim 1 , wherein the alternate object class returned by the substitute application class loader processes at least one intercepted call to a method of the requested object class by calling through to an original implementation of the requested object class in the mobile application. 7. The method of claim 1 , wherein the alternate object class returned by the substitute application class loader processes at least one intercepted call to a method of the requested object class by preventing the intercepted call from being processed. 8. The method of claim 1 , further comprising: wherein the substitute application class loader processes requests for a first requested object class by returning a first alternate object class instead of the first requested object class; wherein the substitute class loader processes requests for all requested object classes other than the first requested object class by returning stub alternate object classes, wherein the stub alternate object classes do not access any data; and wherein performing at least one mobile application management action using the alternate object class returned by the substitute class loader includes changing a state of data that is accessible by the mobile application from a first state to a second state using the first alternate object class. 9. The method of claim 8 , wherein changing the state of the data that is accessible by the mobile application from the first state to the second state comprises performing a decryption operation on the data that is accessible by the mobile application. 10. The method of claim 8 , wherein changing the state of the data that is accessible by the mobile application from the first state to the second state comprises performing an encryption operation on the data that is accessible by the mobile application. 11. The method claim 8 , wherein the first requested object class comprises an object class that creates windows in a graphical user interface of the mobile device. 12. The method of claim 11 , wherein the operating system of the mobile device comprises an Android™ operating system; and wherein the first requested object class comprises the Activity object class defined by the Android™ operating system. 13. The method of claim 1 , wherein performing at least one mobile application management action using the alternate object class returned by the substitute application class loader comprises locking the mobile application at least in part by displaying at least one mobile application management window in a graphical user interface of the mobile device, and wherein displaying the mobile application management window blocks user interaction with the mobile application. 14. The method of claim 13 , wherein locking the mobile application by displaying the mobile application management window further includes causing the mobile application management window to become a currently active window within the graphical user interface of the mobile device. 15. The method of claim 14 , wherein the at least one mobile application management window displayed in the graphical user interface of the mobile device comprises at least one authentication user interface that authenticates a user of the mobile device. 16. The method of claim 1 , wherein performing at least one mobile application management action using the alternate object class returned by the substitute application class loader comprises causing the mobile application to access a managed resource over a secure communication channel. 17. The method of claim 1 , further comprising automatically inserting, into the mobile application by an application wrapping program after the mobile application has been compi

Assignees

Inventors

Classifications

  • Object-oriented · CPC title

  • Installation · CPC title

  • Graphical or visual programming · CPC title

  • G06F9/451Primary

    Execution arrangements for user interfaces · CPC title

  • Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10698703B2 cover?
Starting execution of a mobile application on a mobile device causes the mobile application to invoke an initialization method that i) creates a substitute application class loader, and ii) replaces a default application class loader for the mobile application with the substitute application class loader. The substitute application class loader processes a request for a requested object class d…
Who is the assignee on this patent?
Citrix Systems Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/451. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 30 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).