Apple, Inc. v. Motorola, Inc. et al

Filing 97

Declaration of Carlos A. Rodriguez filed by Defendants Motorola Mobility, Inc., Motorola, Inc. re: 96 Claims Construction Initial Brief, 95 Motion Requesting Claims Construction (Attachments: # 1 Exhibit 1 - Patent No. 6,275,983, # 2 Exhibit 2 - Patent No. 5,969,705, # 3 Exhibit 3 - Patent No. 5,566,337, # 4 Exhibit 4 - Patent No. 5,455,599, # 5 Exhibit 5 - Patent No. 6,424,354, # 6 Exhibit 6 - Reissued Patent No. RE 39,486, # 7 Exhibit 7 - Patent No. 5,929,852, # 8 Exhibit 8 - Patent No. 5,946,647, # 9 Exhibit 9 - Patent No. 5,481,721, # 10 Exhibit 10 - Patent No. 6,493,002, # 11 Exhibit 11 - Patent No. 6,175,559, # 12 Exhibit 12 - Patent No. 5,490,230, # 13 Exhibit 13 - Patent No. 5,319,712, # 14 Exhibit 14 - Patent No. 5,572,193, # 15 Exhibit 15 - Excerpts from '983 Patent Prosecution History, # 16 Exhibit 16 - Excerpts from '354 Patent Prosecution History, # 17 Exhibit 17 - Excerpts from '486 Patent Prosecution History, # 18 Exhibit 18 - Excerpts from '230 Patent Prosecution History, # 19 Exhibit 19 - Apple's Infringement Contentions Claim Chart for '983 Patent, # 20 Exhibit 20 - Apple's Infringement Contentions Claim Chart for '705 Patent, # 21 Exhibit 21 - Apple's Infringement Contentions Claim Chart for '337 Patent, # 22 Exhibit 22 - Apple's Infringement Contentions Claim Chart for '599 Patent, # 23 Exhibit 23 - Apple's Infringement Contentions Claim Chart for '354 Patent, # 24 Exhibit 24 - Apple's Infringement Contentions Claim Chart for '486 Patent, # 25 Exhibit 25 - Apple's Infringement Contentions Claim Chart for '852 Patent, # 26 Exhibit 26 - Apple's Infringement Contentions Claim Chart for '647 Patent, # 27 Exhibit 27 - Apple's Infringement Contentions Claim Chart for '721 Patent, # 28 Exhibit 28 - Apple's Infringement Contentions Claim Chart for '002 Patent, # 29 Exhibit 29 - Excerpts from NeXTSTEP Object-Oriented Programming and the Objective C Language, # 30 Exhibit 30 - July 30, 2010 ITC Order Construing Terms of Asserted Claims in Inv. No. 337-TA-704, # 31 Exhibit 31 - April 4, 2011 Joint Motion to Amend Filed in ITC Inv. No. 337-TA-710, # 32 Exhibit 32 - Excerpts from '002 Patent Prosecution History, # 33 Exhibit 33 - Patent No. 5,588,105, # 34 Exhibit 34 - Patent No. 5,659,693, # 35 Exhibit 35 - Henderson & Card Article, # 36 Exhibit 36 - Patent No. 5,202,961, # 37 Exhibit 37 - Patent App. No. 08/316,237) (Hansen, Scott)

Download PDF
EXHIBIT 19 Exhibit G – U.S. Patent No. 6,275,983 Motorola directly and/or indirectly infringes at least claims 1, 7, 16, and 22 of the ’983 patent, either literally or through the doctrine of equivalents. Motorola’s infringing products include mobile devices such as smartphones and tablet computers, including but not limited to the: Atrix, Bravo, Cliq, Cliq XT, Cliq 2, Charm, Defy, Devour, BackFlip, Devour, Droid, Droid 2, Droid 2 Global, Droid X, Droid Pro, Flipout, Flipside, i1, Xoom, (collectively, “the ’983 Accused Products”).1 For the purposes of this analysis, Plaintiffs will examine a representative mobile device, Motorola’s Droid X, which is shipped operates with the Android 2.1 Platform. All other ’983 Accused Products meet the limitations of the asserted claims on the same bases as indicated for the Droid X, unless otherwise stated. In addition to Motorola’s direct infringement of the claims of the ’983 patent through its development, testing, manufacture and use of its devices, Motorola also indirectly infringes claims 7 and 16 of the ’983 patent. Manufacturers, retailers, distributors, end-users and others in the distribution channel of the ’983 Accused Products directly infringe these claims by using, selling, offering for sale, and/or importing these devices into the United States. Motorola contributes to and induces the infringement of asserted claims 7 and 16 through its promotion and provision of intentional marketing, sale and/or technical support of the ’983 Accused Products and associated specialized components in the United States, and through the intentional design, marketing, manufacture, sale, and/or technical support of the ’983 Accused Products abroad to induce direct infringement in the United States. Motorola supplies ’983 Accused Products and actively encourages the use, sale, offer for sale, and importation of the same in the United States through the promotion and provision of marketing literature and user guides, which induces and results in direct infringement. See, e.g., Motorola Droid X User Guide (WI-Apple0034078-34145). Upon information and belief, Motorola has known or should have known that these actions would cause direct infringement of the ’983 patent and did so with specific intent to encourage direct infringement. Additionally, the ’983 Accused Products have no substantial non-infringing uses. These infringement contentions are preliminary and based only on publicly available information as to the ’983 Accused Products. Motorola has not yet provided discovery as to its accused products and in addition Plaintiff's investigation of Motorola's infringement is ongoing. Based on discovery and Plaintiff's continued investigations Plaintiff reserves the right to amend these contentions to identify additional bases for infringement and additional accused products, including products that Motorola may introduce in the future. Accordingly, Plaintiff reserves its right to amend these contentions as discovery and its investigation proceeds. Also, these disclosures are made based on information ascertained to date, and Plaintiff expressly reserves the right to 1 Motorola has announced additional smartphones including XRT and Titanium which may also infringe the ’983 Patent. Apple reserves the right to supplement this analysis and this list of accused products as discovery into these newly announced products progresses. 1 modify or amend the disclosures contained herein based on the Court’s claim constructions or to reflect additional information that becomes available to Plaintiff. U.S. Patent No. 6,275,983 1. A computer system, comprising: Infringement Contentions The ’983 Accused Products have a processor and are capable of executing numerous computer applications and are, accordingly, computer systems. • For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor and is capable of executing applications such as a web browser, email client, or telephone dialing application. See, e.g., Exh. G-1 [Motorola Droid X Specification]. computer hardware for performing native system services The ’983 Accused Products have hardware for performing native system services. a procedural operating system, having a native interface, for controlling the computer hardware to perform the native system services The ’983 Accused Products have a procedural operating system, having a native interface, for controlling the computer hardware to perform the native system services. • • For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor that is capable of executing the Linux operating system kernel, which provides native system services to Android programs. See, e.g., Exh. G-1 [Motorola Droid X Specification]; Exh. G-2 [Android Dev Site, “What is Android?”]. For example, the ’983 Accused Products execute a procedural Linux operating system kernel to control the products’ hardware to provide native system services: “Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.” See Exh. G-2 [Android Dev Site, “What is Android?”]. object oriented methods requiring native system services; The ’983 Accused Products have object oriented methods requiring native system services. • For example, applications on the ’983 Accused Products are written using the Java programming language and run on the Dalvik Virtual Machine, a custom virtual machine designed for embedded use, which runs on top of a Linux kernel. Android provides many object oriented methods written in Java that manage core system 2 U.S. Patent No. 6,275,983 Infringement Contentions services and thus require native system services. • procedural program logic code, responsive to invocations of the objectoriented methods during runtime, for causing the procedural operating system to control the computer hardware to perform the required native system services For example, Android provides the Thread.java class which offers threading system services. See, e.g., Exh. G-3 [Thread.java], Exh. G-2 [Android Dev Site, “What is Android?”]. The ’983 Accused Products have procedural program logic code, responsive to invocations of the object-oriented methods during runtime, for causing the procedural operating system to control the computer hardware to perform the required native system services. For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native threading system services, in response to calls from the object-oriented thread methods. For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c]; Exh. G-9 [setpriority.s]. • executable program memory associated with the computer hardware for runtime execution of the procedural operating system, invocations of the object-oriented methods and related portions of the procedural program logic code • For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused Products have executable program memory associated with the computer hardware for runtime execution of the procedural operating system, invocations of the objectoriented methods and related portions of the procedural program logic code. • For example, the Motorola Droid X includes 512 MB of RAM and 8GB of FLASH that is associated with a Texas Instruments OMAP3630 processor. The processor is capable of runtime execution of the procedural Linux operating system kernel, as well as the Java object-oriented methods and related portions of the procedural program logic code. See, e.g., Exh. G-1 [Motorola Droid X Specification], Exh. G-13 [Droid X Specs]. 3 U.S. Patent No. 6,275,983 means for making determinations during runtime execution if object-oriented methods to be invoked are present in the executable program memory; and Infringement Contentions The ’983 Accused Products have means for making determinations during runtime execution if object-oriented methods to be invoked are present in the executable memory. • For example, in the ’983 Accused Products, the means for means for making determinations during runtime execution if object-oriented methods to be invoked are present in the executable program memory include the Dalvik Virtual Machine. See, e.g., Exh. G-7 [Android Dev Site, “ClassLoader”]. • For example, when a method from an object-oriented class is called, the Dalvik Virtual Machine checks to determine whether the class has been loaded. The ClassLoader.loadClass() method is one example of how the Dalvik Virtual Machine achieves this. Id. “protected Class<?> loadClass (String className, boolean resolve) Loads the class with the specified name, optionally linking it after loading. The following steps are performed: 1. Call findLoadedClass(String) to determine if the requested class has already been loaded. 2. If the class has not yet been loaded: Invoke this method on the parent class loader. 3. If the class has still not been loaded: Call findClass(String) to find the class.” Id. “protected final Class<?> findLoadedClass (String className) Returns the class with the specified name if it has already been loaded by the virtual machine or null if it has not yet been loaded.” Id. • For example, loadClass() in ClassLoader.c calls loadClass() in java_lang_VMClassLoader, which calls dvmFindClassByName in InternalNative.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-23 [InternalNative.c]. 4 U.S. Patent No. 6,275,983 • a runtime loader, responsive to the determinations, to selectively load required object-oriented methods into the executable program memory during runtime before invocation of the objectoriented methods. Infringement Contentions For example, findLoadedClass() in ClassLoader.c calls findLoadedClass() in java_lang_VMClassLoader.c, which calls dvmLookupClass() in Class.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-21 [Class.c]. The ’983 Accused Products have a runtime loader, responsive to the determinations, to selectively load the required object-oriented methods into the executable program memory during runtime before invocation of the object-oriented methods. • For example, if the Dalvik Virtual Machine determines during runtime that requested object-oriented methods are not in the executable program memory prior to invocation, it will selectively load the required methods into memory. The ClassLoader.loadClass() method is one example of how the Dalvik Virtual Machine achieves this. See, e.g., Exh. G-7 [Android Dev Site, “ClassLoader”]. “protected Class<?> loadClass (String className, boolean resolve) Loads the class with the specified name, optionally linking it after loading. The following steps are performed: 1. Call findLoadedClass(String) to determine if the requested class has already been loaded. 2. If the class has not yet been loaded: Invoke this method on the parent class loader. 3. If the class has still not been loaded: Call findClass(String) to find the class.” Id. “protected final Class<?> findLoadedClass (String className) Returns the class with the specified name if it has already been loaded by the virtual machine or null if it has not yet been loaded.” Id. • For example, loadClass() in ClassLoader.c calls loadClass() in java_lang_VMClassLoader, which calls dvmFindClassByName in InternalNative.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-23 5 U.S. Patent No. 6,275,983 Infringement Contentions [InternalNative.c]. • For example, findLoadedClass() in ClassLoader.c calls findLoadedClass() in java_lang_VMClassLoader.c, which calls dvmLookupClass() in Class.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-21 [Class.c]. 7. A method for operating a computer system, comprising the steps of: executing a procedural operating system on computer hardware, the procedural operating system including a native interface, responsive to procedural function calls, for providing native system services The ’983 Accused Products perform a method for operating a computer system comprising the steps of: executing a procedural operating system on computer hardware, the procedural operating system including a native interface, responsive to procedural function calls, for providing native system services. issuing calls during runtime, compatible with the native interface, to provide the native system services in response to invocations of object-oriented methods requiring such native system services. The ’983 Accused Products perform the step of issuing calls during runtime, compatible with the native interface, to provide the native system services in response to invocations of objectoriented methods requiring such native system services. • For example, the ’983 Accused Products execute a procedural Linux operating system kernel to control the products’ hardware to provide native system services such as thread and process management: • “Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.” See Exh. G-2 [Android Dev Site, “What is Android?”]. • For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s]. • For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See 6 U.S. Patent No. 6,275,983 determining during runtime if object-oriented methods to be invoked during runtime execution are present in executable program memory associated with the computer hardware; and Infringement Contentions e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused Products perform the step of determining during runtime if object-oriented methods to be invoked during runtime execution are present in the executable program memory associated with the computer hardware. • For example, when a method from an object-oriented class is called, the Dalvik Virtual Machine checks to determine whether the class has been loaded. The ClassLoader.loadClass() method is one example of how the Dalvik Virtual Machine may perform this step. See, e.g., Exh. G-7 [Android Dev Site, “ClassLoader”]. “protected Class<?> loadClass (String className, boolean resolve) Loads the class with the specified name, optionally linking it after loading. The following steps are performed: 1. Call findLoadedClass(String) to determine if the requested class has already been loaded. 2. If the class has not yet been loaded: Invoke this method on the parent class loader. 3. If the class has still not been loaded: Call findClass(String) to find the class.” Id. “protected final Class<?> findLoadedClass (String className) Returns the class with the specified name if it has already been loaded by the virtual machine or null if it has not yet been loaded.” Id. • For example, loadClass() in ClassLoader.c calls loadClass() in java_lang_VMClassLoader, which calls dvmFindClassByName in InternalNative.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-23 [InternalNative.c]. • For example, findLoadedClass() in ClassLoader.c calls findLoadedClass() in java_lang_VMClassLoader.c, which calls dvmLookupClass() in Class.c. See Exh. G-19, 7 U.S. Patent No. 6,275,983 selectively loading the objectoriented methods into the executable program memory during runtime before invocation thereof, if not yet loaded. Infringement Contentions [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-21 [Class.c]. The ’983 Accused Products perform the step of selectively loading the objectoriented methods into the executable program memory during runtime before invocation thereof, if not yet loaded. • For example, if the Dalvik Virtual Machine determines during runtime that requested object-oriented methods are not in the executable program memory prior to invocation, it will selectively load the required methods into memory. The ClassLoader.loadClass() method is one example of how the Dalvik Virtual Machine may perform this step. See, e.g., Exh. G-7 [Android Dev Site, “ClassLoader”]. “protected Class<?> loadClass (String className, boolean resolve) Loads the class with the specified name, optionally linking it after loading. The following steps are performed: 1. Call findLoadedClass(String) to determine if the requested class has already been loaded. 2. If the class has not yet been loaded: Invoke this method on the parent class loader. 3. If the class has still not been loaded: Call findClass(String) to find the class.” Id. “protected final Class<?> findLoadedClass (String className) Returns the class with the specified name if it has already been loaded by the virtual machine or null if it has not yet been loaded.” Id. • For example, loadClass() in ClassLoader.c calls loadClass() in java_lang_VMClassLoader, which calls dvmFindClassByName in InternalNative.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-23 [InternalNative.c]. • For example, findLoadedClass() in ClassLoader.c calls findLoadedClass() in 8 U.S. Patent No. 6,275,983 16. A method for operating a computer system including a memory, comprising the steps of: Infringement Contentions java_lang_VMClassLoader.c, which calls dvmLookupClass() in Class.c. See Exh. G-19 [ClassLoader.java], Exh. G-20 [java_lang_VMClassLoader.c], Exh. G-21 [Class.c]. The ’983 Accused Products perform a method for operating a computer system including a memory. The ’983 Accused Products have a processor and are capable of executing numerous computer applications and are, accordingly, computer systems. • For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor and is capable of executing applications such as a web browser, email client, or telephone dialing application. See, e.g., Exh. G-1 [Motorola Droid X Specification]. The ’983 Accused Products have a memory. • storing in the memory a library of procedural program logic code; For example, the Motorola Droid X includes 512 MB of RAM and 8GB of FLASH that is associated with a Texas Instruments OMAP3630 processor. See, e.g., Exh. G1 [Motorola Droid X Specification], Exh. G-13 [Droid X Specs]. The ’983 Accused products perform the step of: storing in the memory a library of procedural program logic code. • For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native threading system services, in response to calls from the object-oriented thread methods. For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s]. • For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its 9 U.S. Patent No. 6,275,983 priority. said library including first procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform first type native system services; Infringement Contentions See e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused products perform the step of storing in the memory a library of procedural program logic code, said library including first procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform first type native system services. For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native threading system services, in response to calls from the object-oriented thread methods. For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. (See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s].) • said library including second procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform second type native system services different from said first type; • For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused products perform the step of storing in the memory a library of procedural program logic code, said library including second procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform second type native system services different from said first type. • For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native process system services, in response to calls from the object-oriented process methods. For example, the Process class includes the method killProcess(), which is used to control a task by “kill[ing] the process with a given PID.” The killProcess() method invokes the sendSignal() method, which is a native method that accesses services provided by the underlying Linux kernel. See Exh. G-18 [Android Dev Site, “Process"].” The Process class also defines 10 U.S. Patent No. 6,275,983 Infringement Contentions statements that, for example, invoke the killProcess() method or the sendSignal() method. Id. • executing a procedural operating system in the memory, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services; For example, the ActivityManagerService calls the killProcess() method in Process.java, which calls the native sendSignal(), which is mapped to android_os_Process_sendSignal() in android_util_Process.cpp, which calls kills.S. See Exh. G-14 [ActivityManagerService.java], Exh. G-15 [Process.java], Exh. G-16 [android_util_Process.cpp], Exh. G-17 [kill.S]. The ’983 Accused products perform the step of: executing a procedural operating system in the memory, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services. • For example, the ’983 Accused Products execute a procedural Linux operating system kernel to control the products’ hardware to provide native system services: “Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.” See Exh. G-2 [Android Dev Site, “What is Android?]. • • running an object-oriented program in a task address space of the memory, the program including an objectoriented method requiring the second type native system services; For example, the ’983 Accused Products include libraries for thread and process services. See e.g., Exh. G-6, [thread.c], Exh. G-9 [setpriority.s], Exh. G-16. [android_util_process.cpp], Exh. G-17 [kill.S]. For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused products perform the step of: running an object-oriented program in a task address space of the memory, the program including an object-oriented method requiring the second type native system services. • For example, the Process class includes the method killProcess(), which is used to control a task by “kill[ing] the process with a given PID.” This is invoked by, for example, the Activity Manager. See Exh. G-14 [ActivityManagerService.java]. The killProcess() 11 U.S. Patent No. 6,275,983 Infringement Contentions method invokes the sendSignal() method, which is a native method that accesses services provided by the underlying Linux kernel. See Exh. G-18 [Android Dev Site, “Process.”]. The Process class also defines statements that, for example, invoke the killProcess() method or the sendSignal() method. Id. These statements are insertable by programmers into object-oriented applications to access services to reference and control a task. determining during runtime whether said second type procedural program logic code is available in said task address space; and The ’983 Accused products perform the step of: determining during runtime whether said second type procedural program logic code is available in said task address space. loading said second type procedural program logic code into said task address space during runtime. The ’983 Accused products perform the step of: loading said second type procedural program logic code into said task address space during runtime. 22. A computer system including an executable program memory, comprising: The ’983 Accused Products have a processor and are capable of executing numerous computer applications and are, accordingly, computer systems. a library of procedural program logic code in the computer system which is responsive to invocations of The ’983 Accused Products have an executable program memory comprising a library of procedural program logic code which is responsive to invocations of object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services. • • • For example, in the ’983 Accused Products, the dvmLoadNativeCode() function in Native.c checks whether a given library is loaded. See e.g., Exh. G-12 [ Native.c]. For example, the load() and loadLibrary() methods in Runtime.java, call the nativeLoad() function in java_land_Runtime.c, which calls the dvmLoadNativeCode() function in Native.c. See e.g., Exh. G-10 [Runtime.java], Exh. G-11 [java_lang_Runtime.c], Exh. G-12 [ Native.c]. For example, the Motorola Droid X includes 512 MB of RAM and 8GB of FLASH that is associated with a Texas Instruments OMAP3630 processor. The processor is capable of runtime execution of the procedural Linux operating system kernel, as well as the Java object-oriented methods and related portions of the procedural program logic code. See, e.g., Exh. G-1 [Motorola Droid X Specification], Exh. G-13 [Droid X Specs]. 12 U.S. Patent No. 6,275,983 object-oriented methods, for causing a procedural operating system to control the computer system to perform native system services; • Infringement Contentions For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native threading system services, in response to calls from the object-oriented thread methods. For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • • a procedural operating system in the computer system, the procedural operating system including a native interface responsive to procedural function calls, for providing native system services; For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s]. For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. The ’983 Accused Products have a procedural operating system, having a native interface responsive to procedural function calls, for providing native system services. • For example, the ’983 Accused Products execute a procedural Linux operating system kernel to control the products’ hardware to provide native system services: “Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.” See Exh. G-2 [Android Dev Site, “What is Android?]. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s]. • For example, an object instantiated from the RecentCallsListActivity.java class, which forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. 13 U.S. Patent No. 6,275,983 an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services; Infringement Contentions The ’983 Accused Products have an object-oriented program in the executable program memory, the program including an object-oriented method requiring native system services. said processor loading procedural program logic code from said library into the executable program memory during runtime to provide said required native system services; For example, applications on the ’983 Accused Products are written using the Java programming language and run on the Dalvik Virtual Machine, a custom virtual machine designed for embedded use, which runs on top of a Linux kernel. Android provides many object oriented methods written in Java that manage core system services and thus require native system services. See e.g., Exh. G-2 [Android Dev Site, “What is Android?]. • a processor in the computer system for determining during runtime whether procedural program logic code is available in the executable program memory to provide said required native system services; • For example, Android provides the Thread.java class which offers threading system services. See, e.g., Exh. G-3 [Thread.java]. The ’983 Accused Products have a processor for determining during runtime whether procedural program logic code is available in the executable program memory, to provide required native system services. • For example, the Motorola Droid X includes a Texas Instruments OMAP3630 processor and is capable of executing applications such as a web browser, email client, or telephone dialing application. See, e.g., Exh. G-1 [Motorola Droid X Specification]. • For example, in the ’983 Accused Products, the dvmLoadNativeCode() function in Native.c checks whether a given library is loaded. Upon information and belief, the Android libraries which are loaded using this function include code for performing native system services. See e.g., Exh. G-12 [ Native.c]. The processor in the ’983 Accused Products loads procedural program logic code from a library into the executable program memory during runtime to provide required native system services. • For example, in the ’983 Accused Products, the means for selectively loading related portions of the procedural program logic code into the executable program memory upon runtime loading of the selected object-oriented methods include the code for loading shared libraries, such as the Java Native Interface (JNI). 14 U.S. Patent No. 6,275,983 • said processor invoking said object-oriented method of said object-oriented program during runtime; and Infringement Contentions For example, load() and loadLibrary() methods in Runtime.java, call the nativeLoad() function in java_land_Runtime.c which calls the dvmLoadNativeCode() function in Native.c. See e.g., Exh. G-10 [Runtime.java], Exh. G-11 [java_lang_Runtime.c], Exh. G-12 [ Native.c]. Upon information and belief, the Android libraries which are loaded by this function include code for performing native system services. The processor in the ’983 Accused Products invokes an object-oriented method of an objectoriented program during runtime. For example, applications on the ’983 Accused Products are written using the Java programming language and run on the Dalvik Virtual Machine, a custom virtual machine designed for embedded use, which runs on top of a Linux kernel. Android provides many object oriented methods written in Java that manage core system services and thus require native system services. See e.g., Exh. G-2 [Android Dev Site, “What is Android?]. • said loaded procedural program logic code responding to said invoking to cause said procedural operating system to control the computer system to perform said required native system services. • For example, Android provides the Thread.java class which offers threading system services. See, e.g., Exh. G-3 [Thread.java]. The ’983 Accused Products contain procedural program logic code, responsive to invocations of the object-oriented methods during runtime, for causing the procedural operating system to control the computer hardware to perform the required native system services. • For example, the ’983 Accused Products include procedural program code for causing the operating system to perform native threading system services, in response to calls from the object-oriented thread methods. For example, Android applications access the native threading system services by accessing procedural program logic code that is responsive to the application’s call to an object-oriented method. • For example, the setPriority() method in Thread.java calls setPriority() in VMThread.java, which calls the native setPriority() in java_lang_VMThread.c, which calls dvmChangeThreadPriority in Thread.c, which calls setpriority.s. See, e.g., Exh. G-3 [Thread.java]; Exh. G-4 [VMThread.java]; Exh. G-5 [java_lang_VMThread.c]; Exh. G-6 [Thread.c], Exh. G-9 [setpriority.s]. • For example, an object instantiated from the RecentCallsListActivity.java class, which 15 U.S. Patent No. 6,275,983 Infringement Contentions forms part of the Contact Manager, creates a new thread before setting its priority. See e.g., Exh. G-22 [RecentCallsListActivity.java]. 16

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?