Patent Infringement is defined as an act of using, selling a claimed invention (described in a patent) for commercial purposes without the consent of the patent holder. To ascertain infringement of a patent by a product/process, one must rely on the claims section of a patent document, which describes the scope of protection granted to a patent. The sole purpose/objective behind patent infringement analysis is to protect the rights of a patent owner.
A detailed analysis of the claim must be done considering patent specification and description for ascertaining the infringement. A patent includes independent and dependent claims and is said to be infringed only if any one of the independent claims is completely implemented or practiced by an alleged product/process. The claims are mostly system or method claims. System claims include system elements with associated functionality, whereas method claims include steps involved in carrying out or practicing the entire process. Proving an infringement is a matter of law and is governed by doctrines, which are developed over the period.
The evidence gathering or Evidence of Use (EoU) generation approach varies with the type of claim. In the case of method and system claims, one generally relies more on web sources, product testing snapshots, and user manuals for gathering necessary evidences to generate the EoU map. However, in the case of CRM/CPP claims (computer-readable media claims), it happens quite a few times that one is not able to gather sufficient evidences from web sources, product testing snapshots, and user manuals. Thus, to establish a high value EoU map, detailed source code analysis and reverse engineering techniques for gathering evidences becomes imperative.
If in case, the source code is not available for infringing targets such as Android applications, one can perform reverse engineering to get hold of the underlying source code of those applications. Following are some of the techniques and tools used in this process:
- Disassembling and decompilation of Android apps (Customized or proprietary apps): In most of the cases, due to customized Android applications (APK), de-compilation of the APK is required to grab the source code. Android programs in Java are compiled to bytecode for the Java virtual machine, then translated to Dalvik bytecode and stored in, dex (Dalvik Executable) and odex (Optimized Dalvik Executable) files and further packaged in APK files. Apktool, Dex2jar, and Baksmali etc. are used to decompile and disassemble the dex and odex files.
- Infringement analysis using SQLite Manager: If the code involves content-providers (databases), SQLite Manager is used to see changes in respective tables in databases (helps in overall code understanding).
- Usage of scripts to retrieve device information: These scripts are copied to memory areas of the device and executed when the device starts up or while an application is launched. Commands such as 'mount' can be used in the script as per the requirement. Further, more information with regard to kernel version can be captured by injecting print statements and customized system calls. This approach can also help in understanding the details of file system used by the device.
- Identifying and making effective use of available tools to get internal details of the OEMs such as OS and kernel versions: One such tool is Nmap utility (OS fingerprinting utility) that provides the running OS version along with other details on exchange of IP device address. This is helpful in the cases where actual OS and kernel details of OEMs are available.
- Network packet analysis: Network packet sniffers such as WireShark/Ethereal and tPacketCapture (for android devices) can be used to capture network traffic logs between client and server.
The patent owner can ask the infringing party to undergo patent licensing agreement including an undisclosed sum of amount with certain terms and conditions. This is a sort of out of court settlement as lawsuits cost both the parties heavily.
If the infringing party refuses to undergo patent licensing deal (out of court settlement), then the patent owner can seek legal actions against the infringing party in the form of a patent infringement lawsuit. In the act of willful infringement and found guilty in the court of law, the infringing party faces either monetary damages (in the form royalties) or injunction (i.e. stay order on production and selling of infringing products).