Selecting application wrapper logic components based on features of a mobile application to be wrapped

US2016378447A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016378447-A1
Application numberUS-201514747757-A
CountryUS
Kind codeA1
Filing dateJun 23, 2015
Priority dateJun 23, 2015
Publication dateDec 29, 2016
Grant date

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.

Executable code of an application package is decompiled to provide a decompiled application package. Features of the application package are identified based on content of the decompiled application package. A set of wrapper logic components are selected from among a library of wrapper logic components based on the features of the application package. The decompiled application package is disassembled to provide disassembled code. Wrapper program hooks are inserted into the disassembled code to provide modified disassembled code. The modified disassembled code is assembled to provide modified assembled code. The wrapper logic components of the set are combined with the modified assembled code to form a wrapped application package including executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code.

First claim

Opening claim text (preview).

1 . A method comprising: performing operations as follows on a processor of an application wrapper computer: decompiling executable code of an application package to provide a decompiled application package; identifying features of the application package based on content of the decompiled application package; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package; disassembling the decompiled application package to provide disassembled code; inserting wrapper program hooks into the disassembled code to provide modified disassembled code; assembling the modified disassembled code to provide modified assembled code; and combining the wrapper logic components of the set with the modified assembled code to form a wrapped application package comprising executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code. 2 . The method of claim 1 , wherein: identifying features of the application package based on content of the decompiled application package, comprises determining resources of a host user device that the application package will use; and selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that is directed to using a resource that is not among the resources of the host user device that the application package will use. 3 . The method of claim 2 , wherein excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that is directed to using a resource that is not among the resources of the host user device that the application package will use, comprises: excluding from the set of the wrapper logic components any of the wrapper logic components of the library that are directed to using a resource that is not among the resources of the host user device that the application package will use. 4 . The method of claim 2 , wherein selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, further comprises: comparing the resources of the host user device that the application package will use to a list of prohibited resources; and excluding from the set of the wrapper logic components any of the wrapper logic components of the library that are directed to using a resource that is among the list of prohibited resources. 5 . The method of claim 2 , wherein identifying features of the application package based on content of the decompiled application package, comprises: obtaining a manifest file from the decompiled application package; and determining the resources of the host user device that the application package will use based on content of the manifest file. 6 . The method of claim 5 , wherein determining the resources of the host user device that the application package will use based on content of the manifest file, comprises: determining the resources of the host user device that the application package will use based on permissions contained in the manifest file that the application requests to access. 7 . The method of claim 6 , wherein determining the resources of the host user device that the application package will use based on the permissions contained in the manifest file that the application requests to access, comprises: identifying associations between labels identified by the permissions to resources that have been defined as being associated with wrapper logic components of the library. 8 . The method of claim 6 , wherein selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, further comprises: comparing the permissions contained in the manifest file that the application requests to access to a list of prohibited permissions; and excluding from the set of the wrapper logic components any of the wrapper logic components of the library that request to access a permission that is among the list of prohibited permissions. 9 . The method of claim 1 , wherein identifying features of the application package based on content of the decompiled application package, comprises: tracing operational flows through decompiled application code of the decompiled application package; and identifying the features of the application package based on comparison of the operational flows to defined rules. 10 . The method of claim 9 , wherein: identifying the features of the application package based on comparison of the operational flows to defined rules, comprises, for each of the features, counting the operational flows that will use the feature; and selecting the set of wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises, excluding from the set of the wrapper logic components any of the wrapper logic components of the library that is directed to any of the features that does not have a count that satisfies a rule for a threshold number of the operational flows that will use the feature. 11 . The method of claim 1 , wherein identifying features of the application package based on content of the decompiled application package, comprises: identifying characteristics of application interfaces of the decompiled application code of the decompiled application package; and identifying the features of the application package based on the characteristics of the application interfaces of the decompiled application code of the decompiled application package. 12 . The method of claim 1 , wherein: the library comprises a software development kit library; and selecting the set of wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises: generating a modified software development kit library containing the set of wrapper logic components selected from among the software development kit library of wrapper logic components, and excluding from the modified software development kit library at least one of the wrapper logic components of the software development kit library that is directed to a feature that is not among the features of the application package. 13 . The method of claim 12 , wherein combining the wrapper logic components of the set with the modified assembled code to form the wrapped application package, comprises: retrieving all of the wrapper logic components of the set from the modified software development kit library for combining with the modified assembled code to form the wrapped application package. 14 . A computing device, comprising: a processor; and a memory coupled to the processor and storing computer readable program code that when executed by the processor causes the processor to perform operations comprising: decompiling executable code of an application package to provide a decompiled application package; identifying features of the application package based on content of the decompiled application package; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package; disassembling the decompiled application package to provide disassembled code; insert

Assignees

Inventors

Classifications

  • Test management · CPC title

  • G06F8/53Primary

    Decompilation; Disassembly · CPC title

  • Object-oriented languages · CPC title

  • Test or assess software · CPC title

  • by adding security routines or objects to programs · 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 US2016378447A1 cover?
Executable code of an application package is decompiled to provide a decompiled application package. Features of the application package are identified based on content of the decompiled application package. A set of wrapper logic components are selected from among a library of wrapper logic components based on the features of the application package. The decompiled application package is disas…
Who is the assignee on this patent?
Ca Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/53. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).