

Another day dawns on the Oracle v. Google trial going on in San Francisco. Our reporter was there, and all morning it was Andy Rubin, called back to the stand by Google and then cross examined by Oracle's David Boies. After Mr. Rubin, the next witness called was Dan Bornstein. When asked what an API is, he answers: "An idea." The judge asks him some questions, and I think he finally understands, or at least a clear picture is beginning to form. But the bigger news happened before Rubin or Bornstein or the jury entered the room. It looks like Google will be presenting a motion based on them noticing that Oracle's copyright registrations don't seem to match their claims, specifically they don't match what Google says Oracle said to the court in a filing two weeks ago. This goes to whether or not Oracle owns what it is suing over regarding structure, sequence and organization of the APIs. The judge asked Google when it could file a Rule 50 motion, which is a motion for judgment as a matter of law, and Google said he'll have it by midnight. Later in the day, we learn why Google's Andy Rubin says they didn't use the GPL version of Java. They were already ready to launch Android when they learned of Sun's plans to release under the GPL.



Jump To Comments [Update 1, Update 2, Update 3,

Update 4, Update 5, Update 6

Update 7] Google says that Oracle wrote in a filing that its works should not be treated as a compilation. But the copyright registrations filed, Google says, "don't support that." So, Google says, it must be a collective work. With copyright of a collective work, Google tells the judge, you only get coverage of the individual parts if you are the author. That would mean, Google argues, if I've understood the argument, that in the absence of proof by the plaintiff, the copyright only protects as a collection, but it doesn't cover individual components inside the collection, unless you can prove you are the author. Everyone was a bit stunned, I take it. Me too. It's conceivably a game changer. When Google files, we'll have a much clearer picture than I do now. It's a complex argument, and we're working only from a reporter's filed notes. Once it's in print, we'll get it figured out. But a Rule 50 motion is a Rule 50 motion. And Oracle has its own little surprise. Despite earlier having agreed to drop -- with prejudice -- the patents found invalid so far by the USPTO, now has one that, on appeal, has been cleared after all (cleared for takeoff, so to speak, as it's ultimately it's up to a jury), and they'd like to add it to the case. Naturally, Google reminds the court that Oracle promised that if they could get a spring trial -- Google wanted one later, after the USPTO was all finished with the reexaminations -- they'd forego their claims on those patents irrevocably, and they got their spring trial. The judge said he'll think about it. [Update: 5: Dan Levine has now tweeted that the judge has said no to Oracle's request. And he has indeed: "Oracle will be required to stand by its word and live with the dismissal with prejudice." I will have the PDF for you shortly. And here it is. I'll put the text at the very end of the day.] I wonder if there is a connection. I mean, how would you feel if you got Oracle's motion asking to use the dropped patent, now, at the 11th hour? The copyright phase is set to end by Friday, except for the closing arguments, which come on Monday, and however long the jury takes to decide it, the patent phase begins immediately afterward. The judge told the lawyers that whatever the decision is, they are to "put on their happy face" and start the patent phase 90 minutes later. So I was thinking maybe Google said in its inner self when it saw the Oracle patent motion, "Fine. Let's *all* play hardball. We see you seem to like surprises. Catch." Probably not, if Google can file its motion by midnight. Anyway, here's the section on that (and SSO stands for structure or sequence and organization, see Whelan v. Jaslow): [Regarding SSO.] Judge: How can they not own it when they bought Sun? Google: In their brief two weeks ago, "these works should not be treated as a compilation", so it must be a collective work. The registrations don't support that. Judge: Do they have to state it on the form? Google: Yes the instructions for question 6 on the form says, identify any work already pre-existing, and what is new. If it is a compilation, you have to describe it. They said that it was a derivative work. What's new and revised: code and documentation. And "license in components", where they didn't get rights to the additional components. Section 103b, compilation copyright only covers the collection as a whole, only if it comes from the same author. Judge: [Reads statute and tries to understand it.] Is that your point? Google: That is absolutely the point. In the absence of proof by the plaintiff, the copyright only protects as a collection, and doesn't cover individual components inside the collection. Cleaned up in 1976 act What happens when the copyright covers something that was already in existence? Clarifies the 1909 act. Judge: But Oracle says it's a collective work. Google: Section 101 defines them. Judge: True, it does say that. Judge: Is a collective work defined, too? Google: Just above. Judge: What is your point again? Google: With copyright of a collective work, you only get coverage of the individual parts if you are the author. Judge: This came from the copyright registrations? Google: Both of them. Oracle: First time we've heard of this. Well into the case to learn that they are going to claim that we don't have ownership [!]. Nothing that we registered takes away from our ownership. Judge: The argument is that the registrations themselves used the phrase "licensed in", which means that some of the work was done [authored] by somebody else, which means that you cannot stop someone from using parts of it, but you can stop them from using the work as a whole. Oracle: On the 37 packages, we are not claiming that. Judge: [talking off the top of my head ] Rule 50 motion are you [Google] ready to file your Rule 50 motion today? Would prevent Oracle from having to re-open. I can't just let this lie in the weeds, that just wouldn't be fair. Google: [Van Nest] We will file Rule 50 motion by midnight. This Monday, they said that it was a compilation. Judge: So the first time that this came into your mind was this Monday? Google: No, they brought this up on Monday. Here's the sections in US Copyright Law at issue, and Section 103(b) says this: (b) The copyright in a compilation or derivative work extends only to the material contributed by the author of such work, as distinguished from the preexisting material employed in the work, and does not imply any exclusive right in the preexisting material. The copyright in such work is independent of, and does not affect or enlarge the scope, duration, ownership, or subsistence of, any copyright protection in the preexisting material. And here's the document I believe Google means, when it says Oracle brought this up on Monday. But decisions on all that come later. And we'll have more reports, so drop back by. Today was Andy Rubin day so far. That lucky duck. I'm sure he'll be telling his grandchildren about this experience one day. Litigation is awful, actually, as you may have observed. But you get used to it, after it's happened before. You could see Eric Schmidt's cool and relaxed demeanor on the stand yesterday, and you saw how normal every-day geeks take to the experience in contrast. Well, the day began with Google's lawyer asking if Mr. Rubin had obeyed his instructions not to drink coffee this morning. I'm guessing that made the jurors smile, and from reports I've seen, they really like Robert Van Nest, Google's lead attorney, and I've read they seem to like all the geek witnesses so far. This is an acknowledgment, then, that Google realized he looked stiff because he was nervous, and they want the jury to understand. How could one not be nervous if you've never been on the stand before? There is no doubt that being on the witness stand knowing David Boies is hoping to draw your blood is even worse. But if you can relax and be yourself, you definitely do better. Lawyers do enjoy pushing your buttons if they can find them, because if you get mad or get to feeling anything, you are more likely to say things that are not in your own best interest. So they act mad or whatever. Trust me when I tell you this: 99% of the time, if you see a lawyer acting angry with a witness, he's putting on a show for the jury. It's the opposite of their happy face. And they do both to send messages they wish to send to the jury. Here's the day's first report on Andy Rubin's testimony, from our trusty mirror_slap, taking us up to the first break: Oracle v. Google, Day 8, Part 1 Arrive 7:20 AM. Saw Andy Rubin coming through security. [Room comes to order.] Before the Jury Enters the Room Judge: How can I help you this morning? Google: VN- 2881 -- apologize to the court -- TX43, is already in evidence. Judge: Will drop reference to 2881. Google: Let counsel know that we will likely rest tomorrow. Judge: That's Thursday. Google: I will hand in a short list of clips with Mr. Ellison, with objections from Oracle. Another question, do you (Judge Alsup) have an idea when the patent phase might begin, if the copyright goes to the jury early next week? Oracle: We will have a short rebuttal case to present. It will be short due to time constraints. If you finish on Thursday, we will finish on Friday with some time left over. Judge: Will need conference on jury instructions. No draft yet. Close but not quite close enough. In arguments, address who has burden of proof on de minimis. I am positive that we will not close on Friday. Judge: We can't start patent case until we have a verdict. We don't know [how long it would take the jury to decide]. Judge: If they render the verdict late in the day, the next day would be the start of the patent phase. If it's early in the morning, then whoever wins or loses puts on a happy face, and proceeds 90 minutes later. Google: Your honor already put in an order on this; it was 90 minutes. Judge: Well, that's fine. 90 minutes it is. Judge: May suggest that the jury stay into the afternoon of the first day? Google: That's helpful, Your Honor. [Regarding Oracle's motion [PDF] filed last night to re-add '720 patent back into the case.] Oracle: [Michael A. Jacobs] With two existing patents, 10 claims, with the addition, 18 claims. Can try 3 patents with 10 claims, not increasing the number of claims. Google never filed anything that said that claims had been dismissed. Given all the facts and circumstances .[lost, but wants to get a yes. ] In terms of procedural issues, [subpoenaing Mr. Fresco] brought to light by Google, we can proceed. Google: Your order was really clear. A spring trial and dismissal with prejudice. This was crystal clear, and the plaintiff had months and months to raise the issue. We've been preparing hard for a two-patent suit. "It's too late to get a re-do now".[Google opposition (pdf)] Judge: I will think about it. Google: Enters into evidence: 573, 606, 607, 2040, 2052, 2053, 2054, 2059, 2060, 2061, 2199, 2205, 2259, 2724, 3030, 3494, 3508, 3520 Google: [Christa Anderson] Designations and depositions for Mr. Ellison. Judge: Ones I need to rule on? Google: Yes, they are very brief. Google: Want to read into the record. Oracle: [Norton] Procedural issue: two days' notice before putting on rebuttal witness, but time is short. Asking court's guidance. Judge: Adjust and do the best you can, the best you can under reasonable circumstance. It could introduce a delay. Google: Thought we'd get the rebuttal witness list this afternoon from Oracle. Oracle: This is designations, not witnesses. Judge: Rule of reason will start to apply, at some point. Judge: Questions for you. Deadline for briefing for "Work as a Whole" how about today at 5PM? Oracle: Jacobs asks for later in the week. Judge: How about by midnight? Google: We will get it to you this afternoon when do we have to get it to them? [Avoiding Oracle being able to use Google's brief and respond in theirs.] Judge: That's gamesmanship, we're not going to get into that. [Regarding SSO.] Judge: How can they not own it when they bought Sun? Google: In their brief two weeks ago, "these works should not be treated as a compilation", so it must be a collective work. The registrations don't support that. Judge: Do they have to state it on the form? Google: Yes the instructions for question 6 on the form says, identify any work already pre-existing, and what is new. If it is a compilation, you have to describe it. They said that it was a derivative work. What's new and revised: code and documentation. And "license in components", where they didn't get rights to the additional components. Section 103b, compilation copyright only covers the collection as a whole, only if it comes from the same author. Judge: [Reads statute and tries to understand it.] Is that your point? Google: That is absolutely the point. In the absence of proof by the plaintiff, the copyright only protects as a collection, and doesn't cover individual components inside the collection. Cleaned up in 1976 act What happens when the copyright covers something that was already in existence? Clarifies the 1909 act. Judge: But Oracle says it's a collective work. Google: Section 101 defines them. Judge: True, it does say that. Judge: Is a collective work defined, too? Google: Just above. Judge: What is your point again? Google: With copyright of a collective work, you only get coverage of the individual parts if you are the author. Judge: This came from the copyright registrations? Google: Both of them. Oracle: First time we've heard of this. Well into the case to learn that they are going to claim that we don't have ownership [!]. Nothing that we registered takes away from our ownership. Judge: The argument is that the registrations themselves used the phrase "licensed in", which means that some of the work was done [authored] by somebody else, which means that you cannot stop someone from using parts of it, but you can stop them from using the work as a whole. Oracle: On the 37 packages, we are not claiming that. Judge: [talking off the top of my head ] Rule 50 motion are you [Google] ready to file your Rule 50 motion today? Would prevent Oracle from having to re-open. I can't just let this lie in the weeds, that just wouldn't be fair. Google: [Van Nest] We will file Rule 50 motion by midnight. This Monday, they said that it was a compilation. Judge: So the first time that this came into your mind was this Monday? Google: No, they brought this up on Monday. Google: Our witness is in the building. [Andy Rubin comes back in.] [Jury is seated.] Judge: Some of you are wearing parkas. [laughter] Judge: I keep it a little cooler in here. Judge: The lawyers say that all the evidence will be done by Friday. Closing arguments on Monday. Up to you regarding how long you deliberate. You set the schedule, but usually the jury stays past 1 PM. You might want to see if you can stay past 1PM on Monday and Tuesday. Andy Rubin Back on the Stand Google: Mr. Rubin. Google: Did you heed my admonition not to drink any coffee this morning? Google: You gave instructions to the team on what to do and what not to do? Andy Rubin: Yes. Google: Where did the technology for Android come from? Andy Rubin: In developing Android, we assembled it from various pieces. A large part came from Google engineers, and Open Source (Linux), and paid companies for contributions. Google: Google was customer of Open Source projects? Andy Rubin: When we went shopping for various pieces of Android tech, we helped the projects to speed up their schedules. Google: You said that you paid companies? Andy Rubin: Yes. Founded Packet Video, to get codecs contributed. Google: When the work was done, did you create a graphic depiction of the tech? Andy Rubin: Yes, and we did that work internally. Google: Shows TX43.1. Andy Rubin: Yes, that's our diagram. [Works out how to present the diagram.] Google: Tell the jury what is represented. Andy Rubin: Main components of the platform. Generally from the bottom up, all the components needed for building a cell phone ---Linux kernel

red area, Linux kernel, OSS under GPL. Below this are the chips. Google: Did you modify the Linux kernel? Andy Rubin: Yes. ----Libraries

Andy Rubin: Libraries stuff in green is not Java. Examples of OSS libraries: SQLite, freetype, are OSS

OpenGL, allows 3D graphics, Webkit, OSS engine that runs web browsers. Google: Any libraries where Google paid for tech? Andy Rubin: Media framework under Packet Video. Plays music and videos. --- app framework (blue) Google: What is that? Andy Rubin: A toolbox that is used by app developers to enhance apps. Written in Java. Google: Written by Google in-house. Andy Rubin: Yes. Andy Rubin: Google identified a unique opportunity to make the apps run better on a cell phone. Google: There are APIs in these? Andy Rubin: Absolutely. Google: Why do you need APIs at each level? Andy Rubin: For each stack to be able to talk with the next layer: ---apps layer Google: Google wrote this? Andy Rubin: Yes. Google: What's in the area of "Android runtime"? Andy Rubin: Dalvik VM, written in C. Google: The core libraries, they are the Java libraries? Andy Rubin: Yes. Google: Link between app framework and core libraries? Andy Rubin: Provide service to the layer above. Google: Do the apps communicate via the APIs to the core libraries? Andy Rubin: Yes. Google: Source code implementation of those libraries? Andy Rubin: Yes. Google: Who wrote that? Andy Rubin: Primarily Google and also Apache Harmony. Google: The API specifications in those, where do they come from? Andy Rubin: The people who implemented them. Google: Give us a sense of how long it took to complete the project. Andy Rubin: Approximately 3 years. Google: 2005 - 2007, was all work complete then in 2007? Andy Rubin: No. We completed a minimal amount for app developers to be able to start working . gave people a 1-year head-start. Google: How do dev's use the core libraries? Andy Rubin: If the app needs a function from the core libraries, the program will call into the core library, and the core library will do its job. Google: Are app developers writing in Java? Andy Rubin: Mostly. There are ways that an app can avoid calling into the Java core libraries they could call into the libraries in the green layer (not Java), and use their existing (pre-Android) code. Google: Why did you do that? Andy Rubin: For legacy software. Judge: Are you talking about programs previously written in Java, or not written in Java? Andy Rubin: Not written in Java. Google: How many people were working on Android? Andy Rubin: Initially 8, 5 of which were engineers. Eventually grew to 85 engineers by 2008. Google: And it continued to grow from there? Andy Rubin: Yes. Google: How big is it? Andy Rubin: 15,000,000 lines of code. Google: How many files? Andy Rubin: Many Google: How many source files came from Apache Harmony? And please tell the jury what Apache Harmony is. Andy Rubin: Explains OSS implementation. Google: Apache Harmony existed before Android? Andy Rubin: Yes. [Explains why OSS is great.] Google: Were you aware of any other companies that were using Apache OSS? Andy Rubin: Yes, the Apache web server. Google: What about Harmony? Andy Rubin: Every Android user. Google: How about IBM? Andy Rubin: Both a customer and contributor. Google: Others? Andy Rubin: Many, not known off the top of my head. Google: What were you aware of regarding whether Apache Harmony had a license from Sun? Andy Rubin: [ lost answer ] Google: Was Apache using the Java Language APIs? Andy Rubin: Yes, that was the whole purpose of Apache Harmony. Google: You used some of this in Android? Andy Rubin: Yes, it was a huge benefit. Google: While you were developong Android, did you believe that you needed a license from Sun for the Java APIs? Oracle: Objection, foundation. Judge: He can say what he understood back then, as a lay opinion. Andy Rubin: No, we did not believe that we needed a license from Sun. Google: You mentioned yesterday a company called Noser. Who are they? Andy Rubin: A company we hired to implement parts of Android. Google: TX2765- do you recognize? Andy Rubin: Yes. Google: What is it? Andy Rubin: Standard Google inbound work agreement. Google: You negotiated contract with Noser? Andy Rubin: Yes. Judge: Any objection? Oracle: No. Judge receives into evidence. Google: Why would you enter into a contract with Noser? Andy Rubin: To accelerate the project, to get a cleanroom implementation. Google: You gave them instructions on what to do and how? Andy Rubin: Yes. Google: Page 10 of TX2765- detailed list of what is provided. Andy Rubin: Two sections go to scope of work, details what we are asking them to do and what we are paying for. Page 4 details list of libraries and classpaths for implementing GNU classpath. Google: What is GNU classpath? Andy Rubin: One of the many uncoordinated efforts to produce a cleanroom set of libraries. Google: GNU classpath were using the Java APIs? Andy Rubin: Yes. Google: Same as apache? Andy Rubin: Yes. Not sure if the target was the same version of Java. Andy Rubin: continuing- Apache Harmony, things that helped them define spec. Google: Did you give them a list of approved sources? Andy Rubin: Yes, we assumed that they would need to use a lot of OSS work. Google: Highlight section 11. Andy Rubin: They can use any and all of the following strategies to complete their work: 1) missed ( Google's code)?

2) improve and import from Apache Harmony [ we favored Apache Harmony, because it used the Apache license

3) Bouncy Castle (another OSS Java implementation)

4) any code from OSS projects, but with Google's prior approval, to ensure that the OSS project in question was clean

5) write their own code Google: After this lawsuit got underway, did you learn that some of the code was accused of being copied? Andy Rubin: Yes. One of the benefits of OSS is that nothing is hidden. When we released in 2008, everybody could inspect it. Google: Some of the test files in the suit came from Noser? Andy Rubin: Yes. Google: What about the source code comments? Did they come from Noser? Andy Rubin: Not sure. Judge Alsup: Useful to the jury, the specific files that were copied? will likely be in the jury form where the specific files are called out? Google: Witness TX1072. Ever seen it before? Andy Rubin: No. Google: List of files at the bottom of the page timsort and comparabletimsort. Were those written by Josh Bloch? Andy Rubin: Yes. Google: Was Josh Bloch part of the original Android team? Andy Rubin: No we brought him on in 2009. Google: All the next 8 that have "impl" in it, and 8 test files do you know that they came from Noser? Andy Rubin: I believe that most of these came from Noser. Google: Any idea of how many lines of code were provided by Noser? Andy Rubin: Wouldn't know. Google: Thousands? Andy Rubin: For sure, thousands. A large amount. Google: Source code comments came from Noser? Andy Rubin: I believe that Noser contributed the majority of them. Google: [missed question] Andy Rubin: Unveiling of Android in 2007, then released the first SDK 8 days later. Google: What is the SDK? Andy Rubin: The tool that developers use to build apps for Android. Lets them develop their application on a desktop, without a phone. Google: The SDK allowed programmers to see the APIs? Andy Rubin: Yes, what was available. Google: They could see the Java APIs? Andy Rubin: Yes. Google: They could see the Google APIs? Andy Rubin: Yes, at each layer, you could see the APIs for those. Google: Anybody could look at that? Andy Rubin: Yes, anyone could download it. Google: There was a big buzz on the release? Andy Rubin: Very big. Google: One of the comments came from Sun? Andy Rubin: Yes. Google: TX 2352- you recognize it? Oracle: Objection. Judge: Did you write this? Andy Rubin: No. Judge: Did you read it at the time? Andy Rubin: Yes, I did. Judge: You can talk about what you thought then. Google: You read this in 2007? Andy Rubin: Yes. Google: Was it a topic of discussion at Google? Andy Rubin: Very much. Google: Pleased with the topic? Andy Rubin: Yes, after years of negotiating with Sun, seeing their support was [fantastic]. Sun was actually investing in my platform to support my platform (NetBeans). Google: Let's look at that (NetBeans), and explain what you meant. Andy Rubin: Sun had made the language really available and open, making money by selling tools to support it. Tools like NetBeans for development Google: How would this help? Andy Rubin: Make it easier to program for Android. Google: Just a few months after Jonathan Schwartz' post, did you get a visit from the folks [ at Sun ] with whom you were negotiating? Andy Rubin: Yes. Google: Mr. Gupta? Andy Rubin: Yes. Google: What was the purpose of Mr. Gupta's visit? Andy Rubin: 1) congratulations on Android, 2) state of Java at Sun. Google: What did he say on 1? Andy Rubin: Congratulations and "welcome to the Java community". Google: Did he have a product? Andy Rubin: For a trade show, Flex. As a company, they were going to pivot away from Java to Flex. It would relate to Java, but not Java. Google: Flex? Andy Rubin: Flex could run on top of Android. Said that Flex was almost complete. Google: What about NetBeans? Did that come up? Andy Rubin: Yes. Google: Did Sun eventually announce his product? Andy Rubin: Yes. Google: Was it a big deal? Andy Rubin: It was for me a surge of support, including from Sun, with the real proof being the investing in the platform that we built, in the open Java platform. Google: You tell your boss? Andy Rubin: Yes. Google: Who? Andy Rubin: Alan Eustice? Google: And the the big boss? Andy Rubin: Eric Schmidt, Larry Page. Google: TX3521 you recognize this? Oracle: Objection, foundation. Andy Rubin: Yes. Google: Email you sent? Andy Rubin: Yes. Google: Offer it into evidence. Judge: Received. Google: [trying to find TX3521 for display] Google: Moving on, will come back Google: This announcement happened at an event? Andy Rubin: Between the release of SDK and the release of the first Android phone. Google: At JavaOne? Andy Rubin: Yes. Google: Did you continue to meet with folks at Sun? Andy Rubin: Yes, open door policy. Google: How often did you meet? Andy Rubin: Maybe once every 6 months. Google: Did anyone ever tell you 2) that the APIs were owned by Sun [ NO ] Andy Rubin: The tone was very nice and congratulatory. Google: Taking all these things together, Schwartz, Gupta, demo at JavaOne. Did you use all these things in your decision to proceed with Android? Oracle: Objection. Mr. Van Nest looks at ceiling. Andy Rubin: Yes, based on the positive media posts, etc, this general support would be good for my business. Google: What steps did you take with Android? Oracle: Objection. Judge: Overruled. Andy Rubin: Continued to invest in Android. Google: What does that mean? Andy Rubin: Continued to hire engineers, doubled-down on the existing team, building Google apps for Android. For instance, Google Maps didn't exist. I had an entire team working on Google apps. Google: Also working with handset partners? Andy Rubin: Yes, with HTC. These relationships were very complex and broad. Google: Did you at that time start an investigation regarding whether you could replace Java in Android? Andy Rubin: No, based on all the positive press, there was no need for this. Google: You were head of Android? Andy Rubin: Describes his responsibilities. Google: When did the first phone come out? Andy Rubin: [ date ] The HTC. Google: Next big release. Andy Rubin: Motorola Droid for Verizon. Google: Others? Andy Rubin: Sony, Ericsson, others. Google: [ reviews timeline ] Google: October 2008, v1.0 of Android is released. Dream, internal codename for v1. Approximately how many of the Open Handset Alliance have produced Android phones? Andy Rubin: About 14 OHA members producing Android phones. Hundreds of SKU's. Google: Who else is making Android phones? Andy Rubin: Everybody except Nokia and Apple. Google: What language is iPhone written in? Andy Rubin: My understanding, their own version of C called Objective C. Google: Any other people using Java in smartphones that are not Android? Andy Rubin: Not to the best of my knowledge. Cross examination of Andy Rubin by Oracle's David Boies Oracle: [Asked about how positive all the reviews of Android were.] Oracle: Did your memory of that blog (Schwartz) improve overnight? Andy Rubin: I don't think so. Oracle: Remember any Sun announcements, you said "vaguely"? Andy Rubin: Yesterday? Judge: Have the transcript? Oracle: 1447, line 4-8. Oracle: And after that, various people at Sun made various comments? Andy Rubin: I don't know Oracle: You stand by your testimony today? Andy Rubin: Yes. Oracle: And yesterday? Andy Rubin: I think we are talking about different things. Oracle: When Mr. Schwartz did his blog, he didn't have the SDK? Andy Rubin: No, the SDK came out a few days later. Oracle: Focusing on comments we can go back and check. You understand that? Andy Rubin: Yes. Oracle: Did anyone say positive things after the SDK was released? Andy Rubin: Yes, I think so. I believe that there were a few. Oracle: Who made the comments? Andy Rubin: Vineet Gupta. Oracle: That wasn't a public release? Andy Rubin: No, from my memory. Judge: Anything else? Any specific recall after the SDK came out? Andy Rubin: Comment at Java One, press interviews with Sun employees. Oracle: TX1048, in evidence. Is this an example of a public comment November 15, 2007, after SDK was announced, says "Sun concerned that Google will fracture Java"? Andy Rubin: Agreed to all questions. Oracle: You mentioned Mr. Gupta, TX 565, TX531, not in evidence. You are not the author. Google: Objection. Oracle: Written by Mr.Gupta. I was about to ask whether he agrees what Mr. Gupta says. Judge: Must only use document for true impeachment. Oracle: Asks for Judge to review, bottom of 2nd page, what Gupta purports he told Andy Rubin. Judge: Indicate in the margin what you want me to look at. Google: Asked for a copy from Oracle. Judge: You cannot use the document. You can use it to bring Mr. Gupta in. He is under subpoena. You can characterize it to the witness. Have to do it the judge's way. I am sorry. Oracle: Did Mr. Gupta tell you in words or substance, that if Google was using Java, that they would have to come to Sun for a license? Andy Rubin: No, I don't recall him ever saying that. Oracle: Ever recall him saying that you should b aware of this based on your experience at Danger? Andy Rubin: No, don't recall him saying anything about this. Oracle: Recall if Mr. Gupta ever said that Sun would have to go after Android handset manufacturers for IP infringement? Andy Rubin: No. [Jury dismissed.] Judge: Any issues for the judge? Google: Got our TX numbers confused, Eric Schmidt vs. Andy Rubin from yesterday. [Break] [ Comes to order after break ] Andy Rubin Back on the Stand, Being Questioned by Oracle Judge: Question from the jury- How many APIs in question are available from Apache via Open Source? Andy Rubin: I don't know the exact answer. Would speculate almost the majority. Judge: You don't really know. Oracle: [Boies] Ask you first, Mr. Rubin, what Sun knew and what you told Sun? Did you ever conceal information from Sun? Andy Rubin: Yes. I didn't divulge our strategy, business plan. Oracle: Did you continue to conceal that after release? Andy Rubin: I did. We weren't partners. Oracle: TX29- 5 months after announcement of an SDK, talking about Java One conference coming up. Andy Rubin: "Are we able to answer direct development questions?" - "Please do not demonstrate to any Sun employees or lawyers." Oracle: TX1072- accused names and packages list. Each of these files were inappropriately, improperly copied? Andy Rubin: No. Oracle: individually Timsort, comparabletimsort, these were copied? Andy Rubin: I don't understand. Google: Objection. Colloquy. Judge: Sustained. Lawyers aren't supposed to be making speeches. Oracle: [Apologies.] Oracle: First file inadvertently had 9 lines of copied code? Andy Rubin: Accidentally. Oracle: That was accidental? Andy Rubin: I believe so. Oracle: Were there any other files where people contravened your directions? Andy Rubin: Not aware of any. Andy Rubin: Non-code-related, non-implementation related issues. Oracle: You refer to APIs as being part of a programming language? Andy Rubin: Yes. Oracle: Are any of these APIs part of the programming language? Andy Rubin: [ long ] Yes. Oracle: Which part? Andy Rubin: All of the ones that start with java. Oracle: Up to Number 26. Andy Rubin: Yes. Oracle: Did you change the Java programming language in the implementation of Android? Andy Rubin: I cannot answer with information given. Oracle: Change the Java APIs? Andy Rubin: Some modification, yes. Oracle: You knew that Apache was precluded from being used on mobile devices, right? Andy Rubin: No, I didn't know that. Oracle: TX 405? Google: Objection, not disclosed. Judge: Is it to or from the witness? Oracle: it is not. goes to impeachment. Judge: Go at it a different way. Oracle: Did anyone tell you that Sun had put field of use restrictions on the J2SE against mobile devices? Andy Rubin: Sun put restrictions on its product. Oracle: Did you know that Apache had field of use restrictions on it? Andy Rubin: No, I did not. Oracle: You know Mr. Schmidt and Mr. Lee? Oracle: I am told that we did disclose TX45 to Mr. Rubin on Saturday. Judge: Is that true? Google: We had a list, it was pulled back, and resubmitted without this document. Judge: Already in evidence, right? Oracle: Yes. Judge: We will allow questions. Oracle: "Sun put FOU restrictions in the TCK for the J2SE only for running on desktops" "These restrictions place restrictions on Apache Harmony". Andy Rubin: I disagree with that statement. [PJ: I am guessing that Oracle is confusing what the field of use restrictions would have been if Apache Harmony had taken a license. But they never did, precisely because of the restrictions. Here's their open letter to Sun.] Oracle: Mr. Schmidt nor Mr. Lee told you about this? Andy Rubin: They did not. Oracle: Trying in connection with Android to get out to as many people as possible, because it would be good for the world, you'd also make revenue off Android?, right? Andy Rubin: No, not directly off Android. Judge: Did you expect Android to contribute greatly to revenue? Andy Rubin: No, I didn't. Oracle: Participate in board material preparation with regard to what Android would contribute to Google? Andy Rubin: Yes. Oracle: TX431, in evidence, email, attachment with charts: "The 4 business units each a $10B opportunity; Android and Chrome platforms critical assets for their success" Andy Rubin: Either I approved the charts or they were made by someone else. Comes to me for approval for my part of the business. Oracle: "Hi, here are slides for Board of Directors presentation" [Oracle refers to 5 BU's, each of which are $10B opportunities.] Oracle: Android/Chrome are critical elements -- you said this, right? Andy Rubin: No. Oracle: You took Apache code and put it into Android? Andy Rubin: I wouldn't say that. Oracle: You told Noser that it was okay to use Apache Harmony? Andy Rubin: Yes. I did not have a license from Sun to use code. Oracle: You didn't have any licenses from Sun for any of their technology to use in Android. Andy Rubin: No. Oracle: While you were developing Android, you didn't have any authorization from Sun to do what you were doing? Andy Rubin: I don't think that I need a license. Oracle: You don't think that APIs are copyrightable? Andy Rubin: No, I don't. I am a computer scientist. I am trained on how computers work. Oracle: Reading from transcript, ref. API copyright. " Folklore" cited as a reason why APIs are not copyrightable.. Oracle: [Trying to delve into what licenses that Sun makes their IP available under. ] Judge: Anything that differs from what counsel is saying? Andy Rubin: Aware of rumors unpublished licenses. Oracle: GPL licenses by which Sun makes its IP available has no cost to it. Andy Rubin: Makes some of Sun's IP available. Oracle: Sun doesn't charge for that? Andy Rubin: No. Oracle: But the licensee has to make available freely any changes (derivative work)? Andy Rubin: I don't agree with the way you asked that question. [ read back from court reporter ] Andy Rubin: I don't understand the question as it was asked. Oracle: Shows chart of Java Class Libraries how much of this was copied into Android? Google: Objection, not on the list of exhibits. Judge: Sustained. Oracle: How much of the APIs, how much was implemented? Andy Rubin: 37. Re-Direct of Andy Rubin, by Google Google: Mr. Rubin, why did you think that it was open and available to use Apache Harmony? Andy Rubin: It's an independent implementation. Google: Was Apache Harmony ever licensed by Sun? Andy Rubin: Not to my knowledge. Google: Was field of use ever a consideration at the time? Andy Rubin: No. Andy Rubin: Never used the TCK, proprietary. "We stayed away from it". Google: Apache makes some or all of the Java class librariess available? Andy Rubin: Yes. Google: Explain why you believe that APIs are not copyrightable. Oracle: Objection. Google: They opened the door. Judge: This is mostly a legal question. Argument needs to be in the final arguments. Sustained. It's not worth a candle. Google: [question about needing a license himself, but missed] Andy Rubin: [ Didn't believe he needed a license, because he wasn't using any of Sun's proprietary technology.] Google: About the preparations for attending the JavaOne conference. Andy Rubin: Small team in a large company, didn't want anyone prevented from going to the conference. Wanted to let another employee who was not on Android team know what he could and couldn't talk about at the conference. Google: You considered Sun to be a competitor? Andy Rubin: Very much. Google: Asked about GPL. Just prior to SDK announcement in 2007, did you learn that Sun was making some of its class libraries available under the GPL? Andy Rubin: Yes, some of it. Google: When did you learn about this? Andy Rubin: A couple of months before the launch of Android. Google: Your understanding is that Sun was going to make J2SE available? Andy Rubin: Yes, the desktop version. Google: Would it have done you any good? A: Too late to do us any good. Would have delayed us. I always wondered why Google didn't use the GPLd code. And I even criticized them for it. This would seem to be the answer. Re-Cross of Andy Rubin Oracle: TX7, already in evidence, goes to what you knew about Apache. 10/11/2005 email from Andy Rubin to Larry Page, next to last paragraph: "Sun has already open-sourced libraries for non-mobile areas." Andy Rubin: No, discussing the meaning, not what I wrote. Andy Rubin: Lots of people commercially use Apache Harmony. Oracle: Know of anyone who is using Apache Harmony commercially? Know of any company that uses Apache Harmony, other than Google, that does not have a license form Sun? Andy Rubin: All companies that have downloaded Android. Oracle: Other than Google and the people Google gives Android to, do you know of any other company that uses Apache Harmony? Andy Rubin: Don't know. Oracle: Ever try to find out? Andy Rubin: No. Re-redirect of Andy Rubin by Google Google: Who are the handset manufacturers using Android without having a license from Sun? Andy Rubin: Motorola, Samsung, HTC, Sony/Ericsson. One Final Question From Oracle to Andy Rubin: Oracle: Any of those handset manufacturers use Apache Harmony for anything except Android? Andy Rubin: I don't know. [Witness excused.] Testimony of Daniel Bornstein Google: [Christa Anderson] Introduction, lives in SF since '92, written many programs; wrote first one at age 7 or 8. Examples of programs: wrote game/graphics; in high school, did computer science. Went to Brown, got BS in cognitive science. Worked at a lot of places over the years Kaleida Labs, a joint venture between Apple+IBM; Danger; Google; the Obvious Corp. Google: Time frames Danger 2002-2005. Google 2005-2011. Google: When did you become aware of theJava programming language? Dan Bornstein: At Kaleida, mid-1990's. Google: Used Java for work? Dan Bornstein: Yes. VR-ish thing built on a lower layer framework. Google: How did you go about learning how to program in Java? Dan Bornstein: Read books. "Java in a Nutshell," and "The Java Language Specification" (James Gosling and Bill Joy). Google: TX4027 you recognize it? Dan Bornstein: It's the Java Language Specification book Google: You actually read this book? Dan Bornstein: Cover to cover. Google: Did the documents that you reviewed actually cover the Java API? Dan Bornstein: Oh, yeah. Dan Bornstein: impossible to use a language without using an API. Google: What is an API? Dan Bornstein: An API is an idea. Google: What is an API specification? Dan Bornstein: Since an API is an idea, the API specification is an attempt to write down, in human terms, so that humans can use or implement an API. Google: Plain English? Dan Bornstein: Absolutely, a lot of plain English. Google: Implementation? Dan Bornstein: The program on the other side of the API specification. Judge: Let me go back. In the example using "max", what do you mean by the API? Includes the implementation, the name? Dan Bornstein: The API is collectively what's in people's heads when people are using it or implementing it. We both know what a dog is, but that's not a dictionary definition. Judge: Why go to so much trouble to write things down if it's in everybody's head? Dan Bornstein: [ To initially develop the API. ] Google: Do you expect to see a declaration? Dan Bornstein: Yes. [ missed ] Google: Do you expect to see certain things in the API declaration? Dan Bornstein: In java, the name of the class and method, set of arguments. Google: Implementation, something that its in source code, is there only one way to write the source code? Dan Bornstein: Many ways. Google: How does this relate to developing an independent API? Dan Bornstein: Implementation can be written in many ways, informed by experience, preference, taste. Google: How did you come to work for Google? Dan Bornstein: Colleagues from Danger were working there, talked with them. Got hired on Android team, first as a software engineer, then a tech lead and then a manager. Became a tech lead 7-8 months in. Became a manager a couple of years in. 9 people reporting to me. 3 different managers while on Android. Google: Did you gain a general understanding of the Android project? Dan Bornstein: New platform for mobile devices. Make it as freely available as possible. Google: How far along was Android when you got there? Dan Bornstein: More demo code than implementation. Google: What was your area? Dan Bornstein: Platform layer. Dan Bornstein: Building a VM and building the libraries that work with that VM. Google: TX43.1 can you see it? Dan Bornstein: Yes. Google: Recognize it? Dan Bornstein: Yes. Google: What is it? Dan Bornstein: A sketch for the various pieces of the Android platform. I used it in a slide in a presentation I did at GoogleI/O in 2008. Dan Bornstein: Yellow-ish part was my area of responsibility. Google: What do you mean when you say core library? Dan Bornstein: Thinking about the entire system, there is an ordering (of dependencies) of libraries these would be lower level than other libraries. Libraries means an implementation of an API. Google: About how many lines of code in the Android platform? Dan Bornstein: Way north of 10,000,000 lines of code. Google: When you say you were working on implementation of core libraries, what do you mean? Dan Bornstein: Implementation of API that a lot of the rest of the platform depended upon. Google: Packages Dan Bornstein: Zoom in on the core libraries, each of them might be represented as a set of packages. About 60 packages in core libraries. Google: For the whole platform? Dan Bornstein: Hundreds of packages. Judge: Is an API the same thing as a package? If not, what is the difference? Dan Bornstein: You can slice and dice it different ways. "It's all kind of contextual." Judge: Let me ask the same yes/no question Is an API the same thing as a package? Dan Bornstein: No. It could be, though. Google: Role implementing Android packages? Dan Bornstein: Using my experience and taste, figure out a set of packages associated with the Java programming language that made sense on the Android platform. As a typical Java programmer, there is a set of APIs that are there available for use, expected. Others would be surprising if they weren't there. "If I were a programmer programming on this system, would I expect it to be there, want it to be there, or not notice if it was missing"? Google: Familiar generally with other Java platforms, JME, JSE? Dan Bornstein: Yes. Google: Did Android implement a complete set of APIs for any given platform? Dan Bornstein: No. That wasn't the goal of the Android project. Google: [missed] Dan Bornstein: Look at the universe of packages that have been made available to the Java platform, there are some that just don't apply. You assume that the thing that you are running on will be running on battery. Less memory, slower CPU speed. Sorts of things you'd do are different, such as sitting in a data center running a web server. We wouldn't want to have those implementations . they take up space. Google: You excluded certain APIs that you didn't need? Dan Bornstein: Yes. Google: Did you use Sun's source code to implement the core libraries? Dan Bornstein: No. Google: Where did the source code come from? Dan Bornstein: Large amount came from Apache Harmony, written in Java and other languages. License was compatible. Another source was the project Bouncy Castle. We wrote a lot of code ourselves, and we had a 3rd party contractor write some. Google: With regard to the 37 packages, did the code come from any one source? Dan Bornstein: Came from many different sources. Judge: What was or was not the same with Java and Android? Judge: The name. Dan Bornstein: Method or class? Let's talk abut java.lang.math.max Dan Bornstein: The java.lang.math would have to be there. Dan Bornstein: it's not just a matter of comfort lots of pre-written source code that we'd like to be able to run on Android. Judge: So the names are the same. Dan Bornstein: Yes. Judge: Declarations. Dan Bornstein: Some leeway in the declarations most are the same. Judge: Differences in implementation? Dan Bornstein: Expect that most would be different. References "tropes of the trade", would expect them to be very similar. Applies to smaller APIs. More heavyweight API implementation would be much more different. Judge: Comments? Dan Bornstein: API would have declaration, a number of comments. Judge: Anything else in an API or package? Dan Bornstein: The API is not the implementation. Judge: The name declaration, what do you call that? Dan Bornstein: An implementation of the API. Judge: Are the comments different? Dan Bornstein: Yes. Judge summarizes. Google: Could you use the word "tropes", explain what it means [ to you ]? Dan Bornstein: There are lots of ways to say (in English), a certain thing. Usual vs. unusual. [more] [PJ: It means, when you look in up in Google, notch, something you expect, commonly defined.] Google: Asks witness to draw out what he is talking about with java.lang.math.max [Witness does] Judge: The curly braces, what do they signify? Dan Bornstein: Surround entire class definition, surround method definition. Google: When you say that source code implementation could be implemented in a number of other ways is this what you were talking about? Dan Bornstein: Yes. Google: Tell us about Apache Harmony. Dan Bornstein: It's a fairly comprehensive implementation. Google: Who was responsible at Google for the core libraries? Dan Bornstein: I was. Google: Describe the work involved at Google to implement one of the core libraries. Dan Bornstein: implementing new stuff from scratch, or taking code from Apache Harmony and integrating it into the source base ( making edits to them ), working with a contractor who would be importing files and working on them. Google: Was this easy to do? Dan Bornstein: It was hard work for several people. Google: For how many years? Dan Bornstein: At least a couple of years, plus another year after the announcement but until the first device was launched. Google: Were you aware that there was source copied form Apache Harmony? Dan Bornstein: Yes. Google: What did Google do to ensure that the source came from Open Source or was created from scratch? Dan Bornstein: I sent out many emails on the subject. Worked out language in contract for 3rd parties. Google: What were the instructions? Dan Bornstein: Okay to write your own, copy from Bouncy Castle, Apache Harmony. Anything that wasn't previously discussed, always must be mentioned to Dan Bornstein or core library team first. Google: You familiar with a company called Noser? Dan Bornstein: I am. Google: Who are Noser? Dan Bornstein: 3rd party company that Google hired for Android. Google: You recognize TX2765? Dan Bornstein: Yes. Google: What do you recognize it to be? Dan Bornstein: Contract between Google and Noser. Google: Was Noser provided guidance for what they could and couldn't do? Dan Bornstein: Yes. Google: Can you show the jury the page where that was done? Dan Bornstein: Page 11 of 32, at the top, 4 bullet items. Google: Explain guidance to Noser for producing source implementation. Dan Bornstein: Each item was what was okay; anything else was not okay 1) improve code delivered from Google,

2) import code from Apache Harmony, Bouncy Castle

3) gain prior approval for other OSS projects

4) write your own code Dan Bornstein: Important instructions. Google: did there come a point in time when you removed source code from the Android project? [ 11:25 -- 15-minute break ] Judge: Any issues? Google: None. Oracle: Lack of immunization for someone taking copied code from a third party. Google: On that subject, upcoming testimony tomorrow. Judge: Will give some instruction to the jury on licenses. [Back and forth on Ellison testimony won't be needed until tomorrow.] The break is over, it's 11:42 AM, and Mr. Bornstein takes the stand again: Oracle: Wants to use some of the items that Dan Bornstein produced and the chart of the Java class libraries. Google: Objects haven't been noticed adequately. Judge: I will allow it. [He seems to be getting a little exasperated.] Dan Bornstein Back on the Stand, Questioning by Google Google: Removal of certain code from Android How many files did you remove code from? Dan Bornstein: Two files that I removed comments from. Google: Removed code? Dan Bornstein: Well that happens all the time as work on a project continues. Particular set of 8 files that were removed entirely from the Android tree. Google: Have you seen this exhibit before? Dan Bornstein: No. Google: See the list of files, 3rd-10th did you remove code from these 8 files? Dan Bornstein: I removed the files entirely. *.implementationJava Google: [two files are CodeSourceTest.java CollectionCertStorePArametersTest.java ] You removed these? Dan Bornstein: Yes. Google: These came into the Android codebase from Noser? Dan Bornstein: Yes. Google: See list of 37 API packages? Dan Bornstein: Yes. Google: Do you know if Apache Harmony offers their own [ independent ] implementation of these packages? Google: Move into evidence chart Dan Bornstein did as TX 3525. Oracle: A demonstrative only. Google: Specifications, you described specifications. Are there specifications for Android's APIs? Dan Bornstein: Yes. Google: Did Google write those specifications? Dan Bornstein: Came from Google, Noser, Apache Harmony, and others. Google: Familiar with Sun's documentation? Dan Bornstein: Yes. Google: In the course of producing Android, did Google engineers have access to and read the [ publicly available ] documentation from Sun's Java? Dan Bornstein: Yes. Google: Did the engineers copy that? Dan Bornstein: No, that would have been against our instructions. Google: What other languages did Google choose, one language over another? Dan Bornstein: Javascript, python. [missed] [Discussions with Sun section] Dan Bornstein: Not immediately, but soon after joining Google, I learned that Google was in negotiations with Sun. Google: You would not have participated in conversations over licensing? Dan Bornstein: No. Google: What kinds of discussions did you have with Sun? Dan Bornstein: What Sun had to offer Google for Android, was it appropriate? Google: During earlier work at Google, did you hear references to "build or buy"? Dan Bornstein: Yes. Google: What is it? Dan Bornstein: Common choice when building a platform of any significant size. "Buy doesn't necessarily mean using money", it could be pre-existing technology. Google: TX272, what is it? Dan Bornstein: I think it's an automated email sent to me by Google's HR system. Google: You receive these kind of documents as a normal part of business? Dan Bornstein: Yes, once every 6 months. Google: Move into evidence. Oracle: No objection. Judge: Moved. Google: 4th paragraph down build or buy decision [ elucidate ]? Dan Bornstein: I had 2 jobs, 2 hats on: 1) build a new implementation, 2) evaluate technologies fromm various companies. Google: Had you been wearing these two hats while working with Google? Dan Bornstein: Yes. [Ultimately the decision was a hybrid approach.] Dan Bornstein: Took Apache Harmony, did a lot of editing to make it work [better, and also at all ] in a very different environment. Google: What is the G1? Dan Bornstein: Smartphone with touchscreen, keyboard, running Android. Google: Did Google go to any effort to remove any trademark terms from Apache Harmony? Dan Bornstein: IANAL, not a trademark lawyer. What we endeavored to do is to not misuse the Java trademark. Spent a lot of effort removing anything that *might* raise trademark flags. There are times when there wouldn't be a problem (using the Java programming language), or the name of a field or method that wasn't necessary for implementing a JAva API. Google: Did you receive any internal emails from Google about this? Dan Bornstein: Oh yeah. There were lots of emails on this. Google: Was the term "scrub" used to refer to this effort? Dan Bornstein: I think that I used that term myself. Google: Any other words? Dan Bornstein: Yes, bad words didn't want to have a "potty mouth". Google: Where couldn't you remove the word Java? Dan Bornstein: In the package names. Google: In your own words, what is an SDK? Dan Bornstein: It's a toolkit for developers to use to write software in a certain context. Google: It included the 37 API packages? Dan Bornstein: I believe so. Google: At the time of the Android release did you become aware of certain public releases from Sun? Google: TX2352 what is it? Dan Bornstein: Jonathan Schwartz' blog, CEO of Sun, November 5, 2007. Oracle: Lack of proper foundation. Google: Will lay a foundation. Judge: This is just a speech about your closing argument. Google: When did you first see it? Dan Bornstein: Day after it was posted. Google: Was the language important to you? Dan Bornstein: Very much so. Judge: We want real memories, not beliefs. "We are not going to get into beliefs." Google: TX3470 please tell us who got this email? Dan Bornstein: From Bob Lee, cc: android-eng, dated November 6, 2007. Android-eng is the email list of all engineers working on Android. Google: Were you a member of the Android Eng email? Dan Bornstein: Yes. Google: Did you received this email? Dan Bornstein: I don't know if I did or not. Cross-examination of Dan Bornstein, by Michael Jacobs for Oracle Oracle: Regarding the list of API packages and files. You are the one who decided which one of these that would be implemented? Dan Bornstein: I had a hand in it. There were others. Oracle: I thought that you said that you made the decision? Dan Bornstein: I was responsible for it, but not the only person. Oracle: You were responsible f.. [ withdrawn ]... Oracle: With regard to the files at the bottom of the page, you were the person who took out the files? Dan Bornstein: Yes, except for the first two. Oracle: Describe what you did. Dan Bornstein: Using source control tools, I removed the files from the current version of Android source. Oracle: You refer to the current source. What do you mean by that? Dan Bornstein: Tip of the tree. [Describes branches.] Major thrusts of development. Judge: This is too long. I don't know if you are doing this on purpose. You need to answer the question yes, no, or with a single sentence. Mr. Jacobs, please ask questions that can be answered in a yes or no manner. Judge: Can you go to the Google web site, can you go get these files? Dan Bornstein: Yes. Oracle: Java.lang.math.max and TX 1028, the Java language. Dan Bornstein: Poster doesn't have methods. Oracle: Methods are below the class. Google: Objection. Dan Bornstein: Looks like a sketch of those packages. Oracle: When you were asked by Google counsel about what was taken, this example is ... with regard to Java language, it has the same structure in Java as Android? Dan Bornstein: At this level yes, a higher level of detail, no. Oracle: Looking at number of methods. Oracle: Did you build or buy the API for the Java language package? So you never bought or built the API for the 37 packages? Dan Bornstein: Yes, if I understand you correctly. Oracle: The developers are deriving the code from the specification, right? Dan Bornstein: There are more than one specification. Specification in "Java in a Nutshell" and in Apache Harmony. At least two different specifications from Sun for the math class, I believe. Oracle: TX 6.2 You said that your team looked at the specification in order to derive the implementation. Dan Bornstein: Gained an understanding of some APIs. Not sure I agree with your full statement. Oracle: Is there an authoritative source for the Java API for the 37 APIs? Dan Bornstein: The Apache Harmony source. Oracle: What source did your developers use? Dan Bornstein: A lot came from Apache Harmony, with implementation and doc. I used that implementation and document as a basis for further development. Oracle: Did you use Apache Harmony for the 37 APIs? Dan Bornstein: Sun documentation. Judge: Was this the only time you were looking at th Sun docs? Dan Bornstein: It was the most memorable time. Oracle: Where did the Apache lawyers get their information for documentation? Dan Bornstein: No first-hand knowledge. Oracle: You were part of the decision to import the Apache Harmony work? Dan Bornstein: Yes. Oracle: You didn't look into that? Dan Bornstein: No. Oracle: Showing math class library for Android. The source for this document is the Android source code, right? Dan Bornstein: Doc is derived from it. Oracle: When we look at the docs, we are looking at information extracted from the source code, right? Dan Bornstein: Yes Oracle: So we are looking indirectly at the source code, right? Dan Bornstein: If I understood you correctly. Oracle: In looking at the API specification in the JLS, it was drawn from the source code? The online docs? Dan Bornstein: Yes. Oracle: So for the java.lang, looking at all the elements, did you implement all the elements in Android? Dan Bornstein: Yes. [Discussion of structure, classes, etc.] [ On to timeline ] Oracle: At one point, did you refer to the Android core libraries as the Java core libraries? Dan Bornstein: I might have. Oracle: Were you under a lot of time pressure to get out Android? Dan Bornstein: Yes, if there was an emergency. Judge: He didn't ask about software development in general, he is asking about this particular case. Come on, answer that question. Dan Bornstein: I did feel pressure to get together an implementation. Oracle: Did that pressure accelerate as time progressed? Dan Bornstein: The same roughly, until we got close to release. Oracle: [ relates release of iPhone to pressure ] Dan Bornstein: It was intense. Oracle: With respect to a clean room, is it your opinion that people can use what they have in their head, so long as they are not directly copying? Dan Bornstein: That sounds about right. Oracle: TX270, an email from you, cc: android-dalvik Dan Bornstein: android-delvik contained other groups as well. Oracle: About assignment of developers. Dan Bornstein: Yes. Oracle: You respond, "you can use developers who have experience with JVM's and Java class libraries, it's okay for you to use what is in your head" Dan Bornstein: If you have an understanding of an API, you can use that information. Oracle: Did you say that in this email? Dan Bornstein: [back and forth ] No, I didn't. Oracle: You decided to include the 37 packages prior to November 2007, in that window of time. Oracle: Are you being compensated for your time as a fact witness? Dan Bornstein: I am. Oracle: How much? Dan Bornstein: $400/hour. Judge: Should ask who is paying him. Oracle: Who is paying you? Dan Bornstein: Google. Oracle: TX 359- is that a chat log? Dan Bornstein: Yes it is. Re-direct of Dan Bornstein Google: do you have a job? Dan Bornstein: Yes. Google: full time? Dan Bornstein: Yes. Google: More than full-time? Dan Bornstein: Yes. Wanted to make sure that his time was minimally invaded upon, so picked a rate to discourage that. Google: TX 359, what is this chat log about? Dan Bornstein: About Apache Harmony project. An OSS project, and it accepts contributions from a wide variety of people. They have a pretty strict set of rules with regard to contributing, including experience with Java core libraries. Jesse was trying to get release forms: Dan Bornstein: Described work at Danger, written in Java language do I have to disclose that? Jesse: absolutely. Dan Bornstein: My form is going to be a bit messy then. Google: Regarding build/buy-- did Google ever try to buy the APIs? Dan Bornstein: Cannot build those things; there is no substance. Google: You said that you looked at the documentation to understand the meaning of an API. What did you mean by that? Dan Bornstein: You can be either a user or an implementor of an API. Have to capture the meaning. Google: TX270-- you were asked questions by Oracle? Idea pf photographic memory . what did you mean? Dan Bornstein: Literal copying, if you don't have a license or permission, is not okay. But if you are a programmer, you have a certain amount of stuff in your head. [Touched on error conditions.] Re-re-Cross of Dan Bornstein Oracle: About Apache's requirements why did Apache have their requirement? At Google, you didn't have any such procedure? Dan Bornstein: In my case. Judge: No such form? Dan Bornstein: No such form. Oracle: Josh Bloch, had prior Java knowledge and was assigned to work on Android core libraries? Dan Bornstein: Yes. [Witness dismissed, not subject to recall ] [ too late in the day for a new witness ] Google: Request for admission. Judge: Shared that with counsel for Oracle? Google: Yes. Judge: [ to jury ] this is another way to get things into evidence, an admission. 12:55 Google: Request for admission #70, admit that ADK allows Google and ___ to use C and C++ Oracle: Response, admit. Google: #145 -- neither Sun nor Oracle has ever publicly pursued any suit against Apache for Apache Harmony. #147 neither apache nor GNU pursued. #152 Admit that many members of the Java SW dev community have used and distributed the Apache Harmony packages. Response: "Such as Google" #170 - Sun accepted Google's free contribution of source code, and used its code in its own release. Response: only in OpenJDK7. Judge: You are a wonderful jury. [ Jury leaves ] Judge and Lawyers Discussion After Jury Dismissed for Day Oracle: [Norton] Undisclosed witness Scott McNealy not known whether Mr. McNealy could be taken out-of-order. Judge: Arrival? 11:30. Judge: How long? Oracle: 20 minutes. Google: McNealy isn't on the list. Judge: Not required for rebuttal. Taking counsel at his word that this is something for rebuttal and shouldn't be in the case-in-chief. Google: Request for times. Judge: I haven't added it up. Google: We could get them later from your clerk. Judge: [does some quick calculations ] For Oracle: 780 +15 + 31+ 5 + 50+ 2 Judge: Latest version regarding jury forms . what should go to jury. Judge: Reserving on the issue of whether SSO is a copyrightable issue. That way, it would be easy for the court of appeals to reverse without a new trial. Judge: I do not have in there that the implementation (compiled code) Judge: Classic case of an attempt to copyright an idea. Judge: Cleanroom is like creative writing. That theory is out the window. That's my judgement. Judge: There is a trying to have it both ways character to the plaintiff's case: 1) all 37 put together 2) all 37, considered individually On Google's side, if SSO is copyrightable, which this jury will be told is the fact, there is no way for you to argue that it's de minimis. There should be a rule 50 entry by Oracle to that fact. On the other hand, the amount of actual copying is just coloration that actual amount of damages would be tiny. Judge: Wish you'd let each of those arguments go out. Streamline the issues. Judge: Beginning to hear a defense item, a way to escape the admission of the SSO in the case, that the API doesn't exist. That's what I heard this last witness to say. I drafted this special verdict form before I heard that. I wish you could meet and confer to come up with a definition of an API. It has become quite clear what has happened here: the names and the hierachical organization is the same. The compiled code is different. Issue of SSO hierarchy and stucture of each individual module, is that protectible, and if so, was that violated here? Was the overall taxonomy of the TX1028 chart violated? That is what my intent is [ to put before the jury ] Meet and confer and try to streamline issues to be put in front of the jury. Considering: "Has Google proven that Sun led it to believe through affirmative actions that what they were doing was fine?" Judge still working on it. Need comments by midnight tonight. Comments on last form were very helpful. Oracle: One thing [Norton] time mistake instead of 50 minutes, should be 31 minutes. [End of day] And here's the text of the judge's order regarding the patent Oracle wanted to assert. And may I just say to all the journalists who wrote breathless copy about the patent rejuvenating the Oracle case, live and learn, y'all. Live and learn. Consider the source, follow the money, think about the track record, and then you won't keep getting fooled by bilge that never comes true: IN THE UNITED STATES DISTRICT COURT

FOR THE NORTHERN DISTRICT OF CALIFORNIA __________ ORACLE AMERICA, INC., Plaintiff, v. GOOGLE INC., Defendant. _____________ No. C 10-03561 WHA ORDER REGARDING

THE 702 PATENT ____________ Before the trial date was set, a substantial question was pending whether to wait until the PTO had finished all re-exam proceedings before commencing trial. To remove this consideration from the calculus, Oracle offered to dismiss with prejudice all patents that had been rejected in a final office action subject to reinstatement in the event the PTO reversed itself prior to the start of trial. In express reliance on this (Dkt. No. 786), the Court set the early trial date requested by Oracle. That trial date (April 16) started on time and at that moment the dismissals with prejudice became final. A few days later, the PTO did reverse itself as to the 702 patent but the reversal came a few days too late, for the trial had already started and the dismissals with prejudice had already become effective. Oracles argument that the patent trial has not yet started is wrong. The was and is one trial with three phases. The trial started on April 16. This is not only the plain meaning of the term but any other interpretation would inject great prejudice given that the parties have relied on the issues to be tried and that reliance should not be turned on its head in mid-trial. Oracle will be required to stand by its word and live with the dismissal with prejudice. IT IS SO ORDERED. Dated: April 25, 2012. [signature]

WILLIAM ALSUP

UNITED STATES DISTRICT JUDGE 0270.pdf [Email from Dan Bornstein to Ben Titzer, cc to android-dalvik, Subject: Re: [dalvik] Dalvik IP issues. Bornstein says it's ok to use what is in your head, but not ok to copy other people's code.]

0359.pdf [Email from Dan Bornstein to Jesse Wilson at Google, dated Aug. 11, 2009. However, it's in the format of questions interspersed with the answers. It's regarding whether one of them should "disclose my work for danger". "no access to sun source code, but we did create a java impl., and we did license the j2me tck"]