Detecting open source components built into mobile applications
AssigneeWhitesource Ltd.
InventorsRami Sass, Tom Shapira
Life of this patent
Estimating the term…
Abstract
A method, system and computer program product, the method comprising: obtaining an open source class and archive database; receiving an Android Application Package (APK); retrieving one or more class comprised in the APK; matching each of the classes against the open source class and archive database, to obtain a corresponding archive collection, such that each archive in the archive collection comprises at least one of the classes; and reporting the respective archive collection.
Claims3
A computer-implemented method comprising:
- obtaining an open source class and archive database;
- receiving an ANDROID Application Package (APK) comprising a multiplicity of classes and executable by a mobile device running an ANDROID operating system;
- retrieving at least one class comprised in the APK;
- matching each of the at least one class against the open source class and archive database, to obtain a corresponding archive collection, such that each archive in the archive collection comprises at least one of the at least one class;
- for at least two archives from the archive collection being revisions of one another and comprising the same classes, removing an earlier archive and maintaining a later archive of the at least two archives;
- determining a reduced archive collection, said determining comprising:
- removing from the corresponding archive collection a first archive comprising a class that is comprised only in the first archive;
- clustering the corresponding archive collection without the first archive, to obtain a reduced archive collection in respect of the at least one class;
- and
- adding the first archive to the reduced archive collection;
- and
- reporting the reduced archive collection.
A computerized apparatus having a processor, the processor being configured to perform the steps of:
- obtaining an open source class and archive database;
- receiving an ANDROID Application Package (APK) comprising a multiplicity of classes and executable by a mobile device running an ANDROID operating system;
- retrieving by the processor at least one class comprised in the APK;
- matching by the processor each of the at least one class against the open source class and archive database, to obtain a corresponding archive collection, such that each archive in the archive collection comprises at least one of the at least one class;
- for at least two archives from the archive collection being revisions of one another and comprising the same classes, removing an earlier archive and maintaining a later archive of the at least two archives;
- determining a reduced archive collection, said determining comprising:
- removing from the corresponding archive collection a first archive comprising a class that is comprised only in the first archive;
- clustering the corresponding archive collection without the first archive, to obtain a reduced archive collection in respect of the at least one class;
- and
- adding the first archive to the reduced archive collection;
- and
- reporting the reduced archive collection.
A computer program product comprising a non-transitory computer readable storage medium retaining program instructions, wherein the program instructions when read by a processor, cause the processor to perform a method comprising:
- obtaining an open source class and archive database;
- receiving an ANDROID Application Package (APK) comprising a multiplicity of classes and executable by a mobile device running an ANDROID operating system;
- retrieving at least one class comprised in the APK;
- matching each of the at least one class against the open source class and archive database, to obtain a corresponding archive collection, such that each archive in the archive collection comprises at least one of the at least one class;
- for at least two archives from the archive collection being revisions of one another and comprising the same classes, removing an earlier archive and maintaining a later archive of the at least two archives;
- determining a reduced archive collection, said determining comprising:
- removing from the corresponding archive collection a first archive comprising a class that is comprised only in the first archive;
- clustering the corresponding archive collection without the first archive, to obtain a reduced archive collection in respect of the at least one class;
- and
- adding the first archive to the reduced archive collection;
- and
- reporting the reduced archive collection.
Dependencies are inferred from the claim text.