Академический Документы
Профессиональный Документы
Культура Документы
[T]hrow away their standard license, because it isnt what were asking for, and they needed to develop a new license that was specifically what were asking for. So what were asking them to do is basically change their business model.
Andy Rubin Co-Founder of Android April 24, 2012 Trial Tr. 1606:8-17; 1618:8-15; 1596:15-20
And we would come in and we would basically say, hey, why dont you open source your technology? Why dont you make it available for free to the world as part of our platform? And, in return, well pay you a little bit of money to do that, so you guys can go and create some derivative of your business model.
TX 475, 450, 451, 452, 453, 454, 455, 460, 461, 462, 463, 464, 476, 509, 513, 518, 520, 521, 523, 524, 526, 598, 599, 601, 602, 603, 659
JAVA
Question 1.A
ANDROID
Google copied Java structure, sequence, and organization into Android core library
Question 2
Question 3
The Android APIs Have The Same Structure, Sequence, and Arrangement As The Java APIs
For the 37 accused API packages, Android and Java 2 SE version 5.0 have substantially the same selection, arrangement, and structure of API elements.
Googles Admission April 23, 2012 Trial Tr. 1337:21-24
Q. And the Structure, Sequence and Organization of the API elements is virtually identical across those 37 packages, correct? A. That's right.
Owen Astrachan, Ph.D. Googles Technical Expert April 27, 2012 Trial Tr. 2214:3-9
THE COURT: And then the names and the declarations you're going to say are the same. THE WITNESS: That's right.
Dan Bornstein, Former Google Android Tech Lead April 25, 2012 Trial Tr. 1792:4-6
Googles Expert Admits That Google Copied Java Structure, Sequence, And Organization Into Android Core Library
Q. And with respect to the packages and the structure of the packages, are there any similarities between the two platforms? A. No. The Package names, Class names, and Method names for the 37 packages are the same; otherwise, there are no they are different.
Owen Astrachan, Ph.D. Google Technical Expert April 27, 2012 Trial Tr. 2184:22-2185:9
Q. And do you have an opinion as to whether there are any reasons why those things are the same, the structure, the organization, and the names? A. As I've mentioned before, that structure of the names of the classes, packages, and methods needs to be the same so that the code will work on both platforms, be compatible, inter-operate, so that I can call the methods. Those need to be the same.
Android Core Library Copies Java Structure, Sequence, And Organization API CODE
package java.security
ProtectionDomain(CodeSource codesource, PermissionCollection ClassLoader getClassLoader () permissions) public class ProtectionDomain { of this Returns the ClassLoader Creates a new ProtectionDomain domain with the given CodeSource and public ProtectionDomain(CodeSource codesource, Permissions.
package java.security
PermissionCollection permissions) {
TX 623
TX 46.20
7
DECLARATION
TX 3452
9
*
* * *
* *
* *
* * * * * * * * * * * * *
TX 1028 (poster only)
* * * * *
10
Methods inherited from class java.nio.Buffer: capacity clear flip hasRemaining isReadOnly limit limit mark position position remaining reset rewind
11
Owen Astrachan, Ph.D. Google Technical Expert April 27, 2012 Trial Tr. 2212:3-19
Owen Astrachan, Ph.D. Google Technical Expert April 27, 2012 Trial Tr. 2212:25-2213:10, 2213:17-19
13
Fair Use
1
14
NO NO
NO
NO NO NO
15
16
Eric Schmidt Google Chairman and Former CEO April 24, 2012 Trial Tr. 1458:12-16
The vast majority of Google's revenue at the time and today comes from search revenue. And so the primary reason to have something like Android is that people will do more searches, and then we'll get more money as a result. And that's how we, essentially, pay for the strategy of Android.
17
Eric Schmidt Google Chairman and Former CEO April 24, 2012 Trial Tr. 1456:15-19
19
Google copied the 37 APIs from Java core libraries into Android core libraries
37 APIs
37 APIs
20
Dangers Sidekick
BlackBerry
Nokia Series 60
21
22
API design is done by Oracles most experienced and talented software engineers.
Larry Ellison, Oracle CEO, April 17, 2012 Trial Tr. 291:11-16
It took Dr. Reinhold and a team of engineers two years to develop just one package java.nio.
Mark Reinhold, Oracle Chief Java Architect, April 18, 2012 Trial Tr. 623:17-624:1
23
In anything except the most trivial API design, there are so many choices to be made I wouldn't know how to start counting them.
Mark Reinhold, Ph.D., Oracle Chief Architect Of The Java Platform Group, April 18, 2012 Trial Tr. 627:21-628:1
Just as its hard to find people that are really good at anything thats hard, whether it be, you know, being an artist, a football player, a concert violinist. Those things are hard. This is something thats hard in the same way.
Owen Astrachan, Ph.D., Googles Copyright Expert, Sept. 9, 2011, Dep. 128:9-13 played April 27, 2012 Trial Tr. 2209:9-22
24
Josh Bloch Googles Chief Java Architect Former Sun Distinguished Engineer
Q. There are aesthetic matters in API design; correct, sir? A. Yes, there are. Q. And it's -- it's not being prissy to think about aesthetic matters. The aesthetics of an API design are part of this noble and rewarding craft. Correct? A. Yes. Generally, an API that displays good aesthetics will be easy to use. It's like a car's dashboard. Making it pretty isn't just about making it nice to look at. The car will be actually easier to drive if you can see the speedometer.
Josh Bloch, Google Chief Java Architect, April 19, 2012, Trial Tr. 752:5-14
Q. But that person who came up to you, had obviously left a vivid impression in your mind, was saying to you: API design is a noble and rewarding craft. You changed my life with the quality of your craftmanship. Correct? A. Yes.
Josh Bloch, Google Chief Java Architect, April 19, 2012 Trial Tr. 751:5-9
25
26
Google and Oracles Experts Agree That These 37 APIs Are Important
Q. What is the significance of the decision in Android to copy the 37 API packages into the Android platform? A. Oh, so, that's huge. These 37 packages are highly useful. They're important to developers and programmers. And to have the same API as the Oracle Java library has a very high significance to any potential developers.
John Mitchell, Ph.D. Oracle Technical Expert April 23, 2012 Trial Tr. 1331:10-15
Q. What would happen if you ripped those lines out of Android? A. Well, for the purposes of the Android core libraries, those are part of it, so they need to be there for Android to work as it's been designed.
Owen Astrachan, Ph.D. Google Technical Expert April 27, 2012 Trial Tr. 2212:14-19
27
as a Java programmer, as, say, a typical Java programmer, there's certain of these APIs which you just sort of, like, fundamentally think of as kind of part of -- part of the system that you can just use without really having to think too much about it And my job was sort of to kind of sift through all of that and come up with a nice and consistent set of APIs that we have would then implement and provide to developers. Q. Would you agree that the Java APIs that Android supports are good stuff from Java? THE WITNESS: Yes.
Bob Lee Former Google Core Library Lead for Android TX 1067; April 25, 2012 Trial Tr. 981:22-982:21
28
29
30
Application Developer
JVM
JVM
JVM
A. No.
Q49. Is Android Java compatible? A. No.
TX 383 at p. 8
32
Android
Application Developers
JVM
Java
Application Developers
JVM
JVM
Android
33
My proposal is that we take a license that specifically grants the right for us to Open Source our product. Well pay Sun for the license and the TCK. Before we release our product to the open source community we'll make sure our JVM passes all TCK certification tests so that we don't create fragmentation.
TX 7 at p. 1
34
Google Knew Java Fragmentation Would Get Them Into Trouble With Sun
From: Tim Lindholm To: Andy Rubin Sent: October 26, 2005
If we dont show strong efforts toward avoiding fragmentation we are also going to have much more trouble with Sun.
TX 125 at p. 1
35
Google Knew Its Failure To Avoid Fragmentation Would Get Them Into Trouble With Sun
From: Andy Rubin To: Barry Schnitt Sent: November 14, 2007
Suns Comment to CNet: Were reaching out to Google and assuming theyll be reaching out to us to ensure these platforms and APIs will be compatible Rubin: This is a touchy subject.
36
Edward Screven Oracle Chief Corporate Architect April 18, 2012 Trial Tr. 533:7-15
37
Safra Catz Oracle President April 27, 2012 Trial Tr. 2322:2-12
38
Fact
Google used Java APIs to make money from advertising on mobile phones. Java was already on mobile phones. Android is NOT transformative. Java APIs are complex, creative, even aesthetic works.
Fair Use?
NO NO NO
2. Nature of the copyrighted work. 3. The quantity and quality of what Google copied.
37 Java API packages that Google copied in every detail are highly useful, are necessary, and are expected by Java developers. Android: Displaces licensed Java Causes fragmentation Blocks Java opportunities.
4. The effect on the potential market for or value of the copyrighted work.
NO
39
40
Q. So when writing the comments, the comment writers on the Android team were looking at the comments in the Java documentation, correct? A. Yes.
Bob Lee Former Google Core Library Lead for Android April 23, 2012 Trial Tr. 991:20-992:5
Q. And what instructions were they given about how to avoid copyright infringement comment to comment? A. Uhm, I guess this would be equivalent to paraphrasing a book or an article, or something like that. So, obviously, you don't copy it word for word. Q. And you don't paraphrase either; correct, sir? A. Uhm, well, I believe they did paraphrase.
41
TX 610.2
TX 767
42
v
A CipherInputStream is composed of an InputStream and a Cipher so that read() methods return data that are read in from the underlying InputStream but have been additionally processed by the Cipher. The Cipher must be fully initialized before being used by a CipherInputStream. For example, if the Cipher is initialized for decryption, the CipherInputStream will attempt to read in data and decrypt them, before returning the decrypted data.
This class wraps an InputStream and a cipher so that read() methods return data that are read from the underlying InputStream and processed by the cipher. The cipher must be initialized for the requested operation before being used by a CipherInputStream. For example, if a cipher initialized for decryption is used with a CipherInputStream, the CipherInputStream tries to read the data an decrypt them before returning.
TX 610.2
TX 767
43
Q. So you would expect the same level of similarity that the jury has seen in these examples so far across the documentation for the 37 packages, sir?
Bob Lee Former Google Core Library Lead for Android April 23, 2012 Trial Tr. 1175:25-1176:3
A. Generally, yes.
44
TX 610.2
TX 767
45
Bob Lee Former Google Core Library Lead for Android April 23, 2012 Trial Tr. 1191:3-17
Q. What, if any, similarities would you expect to find in any two descriptions of the same method or class within the Java API libraries? A. So these, especially the specification parts, are a contract. These are specific rules. You know, I actually wasn't even a big fan of including these. I would have preferred that we just point people to Sun's site for this specific documentation because you shouldn't really be rewriting a contract. And in doing so they are going to be substantially similar. You're talking about a very specific thing and very specific rules about technologies that have very specific terminology, so there's only so many ways that you can phrase things.
46
Fair Use
2
47
48
TX 1072
49
TX 896.1
TX 1031
50
TX 623.9
TX 1039
51
CODE
rangeCheck() from Android TimSort.java
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex+")"); if (fromIndex < 0) throw new ArrayIndexOutOfBoundsException(fromIndex); if (toIndex > arrayLen) throw new ArrayIndexOutOfBoundsException(toIndex); }
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex+")"); if (fromIndex < 0) throw new ArrayIndexOutOfBoundsException(fromIndex); if (toIndex > arrayLen) throw new ArrayIndexOutOfBoundsException(toIndex); }
TX 794
52
rangeCheck Is Significant
Q. Did you conduct an analysis of the significance of rangeCheck to other code in the same class file? A. Yes. Q. What did you conclude? A. I found a number of other source code in other files that called that function. And, also, I did an experiment with the phone source code instrumented, and counted the number of times that rangeCheck was called in starting up the phone. And I found that it's called 2600 times just in powering on the device or starting the emulator. So 2600 seems like a pretty big number for the number of calls to this function.
John Mitchell, Ph.D., Oracle Technical Expert April 23, 2012 Trial Tr. 1329:9-21
53
THE COURT:
Isnt it true that within recent months you could still go on the Google website and find these very files with the same code in there? True or not?
Dan Bornstein Former Google Android Tech Lead April 25, 1012 Tr. 1832:3-10
THE WITNESS: You can look at the history and see those files. THE COURT: So its there, available to the public. True?
54
Other Issues Raised By Google 1. Whether APIs are part of the language 2. Whether Google uses the Java brand 3. Whether Googles development was clean 4. Whether Google was seeking a Sun partnership
55
The 37 Java APIs Are Separate From And Not Required By The Java Programming Language Googles counsel: APIs are necessary to use the language. (Tr. 244:1-2.)
Owen Astrachan, Ph.D. Google Technical Expert April 27, 2012 Trial Tr. 2220:1-7
Q. Was the choice to pick 37 packages to implement Android, was that a requirement of the Java programming language or a commercial objective of the Google developer, sir? A. I can only tell you that it was not a requirement of the Java programming language. I can't tell you - I was not conversant with the Android developers -- as to why they chose it.
56
Suns Specification License Applies Regardless of Whether A Company Uses The Java Brand
Suns specification license:
Excludes trademark
Applies regardless of whether you call implementation Java
Only somewhat familiar with license. (Tr. 2013:22-2014:6.) I'm not there to write our contracts. (Tr. 2015:2-7.)
TX 610.1
57
Ha, wish them luck. Java.lang apis are copyrighted. And Sun gets to say who they license the tck to, and forces you to take the shared part which taints any clean room implementation.
TX 18 at p. 1
58
TX 281
Joshua Bloch
Dan Bornstein
Andy Rubin
Brian Swetland
Hiroshi Lockheimer
59
Google Knew It Needed A License If It Did Not Partner With Sun For Android
From: Andy Rubin To: Tim Lindholm Sent: February 20, 2005
either (a) well partner with Sun as contemplated in our recent discussions or (b) well take a license.
TX 12 at p. 1
60
61
TX 610.2
62
Q. You consulted the Java API specifications to make sure that the Android code for the corresponding core libraries would be consistent with those specifications, correct? A. Yes.
Bob Lee Former Google Core Library Lead for Android Trial Tr. 982:25-983:12
Q. The Java API specifications that you consulted were available on Sun's website, correct? A. Yes. Q. And you consulted those Java API specifications while you were doing work for Google on Android, correct? A. Yes. Q. You saw that there were copyright notices on the Java API specifications when you consulted them, correct? A. Yes.
63
This test kit, called the Java Compatibility Kit or JCK, is needed by the Apache Harmony project to demonstrate its compatibility with the Java SE specification, as required by Suns specification license.
TX 917 at p.1
64
Bob Lee Former Google Core Library Lead for Android Trial Tr. 1209:17-20
Q. And Apache concluded that a license was required from the spec lead under whatever terms the spec lead chooses; did they not, sir? A. That's the unfortunate reality, yes.
65
TX 2260 at p. 1
TX 610.1 at p. 1
66
Jonathan Schwartz Former Sun Microsystems Chief Executive Officer (2006-2010) April 26, 2012 Trial Tr. 1991:9-14
We could pound on the table and say Stop and try to sue somebody, which would have made it more successful, or we could grit our teeth, make the best of an uncomfortable situation and embrace it, and then try to get our products to support it so anyone who wanted to use it would come to us and see us as a part of that value chain.
67
Were really interested in working with Google to make sure we dont end up in a fractured environment.
TX 1048 http://www.zdnetasia.com/sun-concerned-googles-androidwill-fracture-java-62034418.htm
68
Android discussion proposal more than likely is going to be about buying out Java.
TX 2070 at p. 1
69
April of 2009, I had a discussion where the person from Google wanted to discuss Java Standard Edition. But I brought up the subject of Android, and we discussed that, as well.
Leo Cizek Oracle Account Manager April 20, 2012 Tr. 1071:25-1072:3, Tr. 1073:5-9
I said that there would be something that would have to be fixed, first, which is the fact that regarding Android there was no commercial use license; and, as we understood it, Android was shipping an incompatible version of Java, commercially.
70
Theres obviously a lot we didnt focus on during the past (whirlwind) week from the instrumentation were building into our open source assets (so they auto-generate data about the millions of customers downloading them), to the battles with Adobe Flash/Google Android, Microsofts distribution dependencies, etc.
TX 2362 at p. 1
71
Q. Were you one of the people that participated in deciding to break off efforts to reach agreement with Sun? A. I definitely participated in that, from my memory. But I also say Im not sure theyve ever broken off. Continue to have discussions to this day.
Larry Page Google CEO April 18, 2012 Trial Tr. 492:18-21
72
73
No pre-lawsuit document saying Google relied in any way on positive comments about Android.
74
If Sun doesnt want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language -or 2) Do Java anyway and defend our decision, perhaps making enemies along the way
TX 7 at p. 2
75
Google Could Not Have Relied Because Googles Copying Was Complete Before November 2007
Q. Did you decide to include the 37 packages of Java APIs in Android after you read that blog announcement? A. No.
Dan Bornstein Former Google Android Tech Lead April 25, 2012 Trial Tr. 1850:8-1851:2
Q. You decided that back here in 2005-2006; correct, sir? A. Uhm, it would have been 2006, mid-2006, I guess. Something like that. Q. And, in fact -A. Actually -- wait, wait. Actually, I think that would -would have been more like early 2007.
76
Sun: Were really interested in working with Google to make sure developers dont end up with a fractured environment. Rubin: This is a touchy subject.
77
1) Are we able to answer direct developer questions about Android at the booth? Yes. One-on-one only, please.
2) Can we demonstrate the tooling, emulator, developer environment, etc? Yes, one-on-one only please, where you know exactly who you are talking to. Please dont demonstrate to any sun employees or lawyers.
TX 29 at p. 1
78
Sun puts field-of-use restrictions in the Java SE TCK licenses which prohibit Java SE implementations from running on anything but a desktop or server. These restrictions prevent Apache Harmony from independently implementing Java SE (Harmony cant put those restrictions on their own users and still Apache license the code) not to mention Android (though thats water under the bridge at this point).
79
> Proposal: > - Google buys the rights to Java from Sun (patents, copyrights, etc) > > Good for Google: > - Our Java lawsuits go away
TX 326 at p. 2
80
Q. Now, there came a time when Google was sufficiently worried about being sued that it thought about buying all the rights to Java; correct, sir? A. Yes.
Eric Schmidt Google Chairman and Former CEO April 24, 2012 Trial Tr. 1559:20-23
81
We really dont want to inadvertently stir anything up for Android I suspect we should step away, and only respond further if Sun chases after us.
TX 1029 at p. 1
82
2009
83
Google Never Said In Discussions With Oracle That It Did Not Need A License
Q. Did Mr. Eustace express in any of your communications, if at all, that Google did not need a license for Java because someone else at Sun or Oracle had approved of Java and Android? A. No, he never said that. Q. Q. Yes. In your discussions with Google representatives, to what extent, if any, did anyone ever say that Google did not need a license for Java because Mr. Schwartz had indicated that Sun had no objections? A. Nobody said that.
84
Safra Catz Oracle President and Chief Financial Officer April 27, 2012 Trial Tr. 2316:5-9
Hasan Rizvi Oracle Senior Vice President of Development April 26, 2012 Tr. 1942:22-1943:1
What weve actually been asked to do (by Larry and Sergei) is to investigate what technical alternatives exist to Java for Android and Chrome. Weve been over a bunch of these, and think they all suck. We conclude that we need to negotiate a license for Java under the terms we need.
TX 10
85
"Q. in or about August of 2010 that Larry and Sergey had asked Mr. Lindholm What weve actually beendo this? do (by Larry and to asked to Sergei) is to investigate whatwas aware at the time that A. I technical alternatives Eric Schmidt exist Chairman for Android and Chrome. Weve been Google to Java we were thinking about what to and Former CEO over 24, 2012 a bunch of these, and think they all suck. We April do." Trial Tr. 1465:21-24 conclude that we need to negotiate a license for Java
under the terms we need.
TX 10
86