Google faces $9 billion in damages after ripping off Java in Android
A lawsuit seeking damages from Google over its willful appropriation of Java as the basis of its Android operating system has been slowly grinding through the courts for most of the last decade. It has finally concluded that Google's taking of Java "was not fair" use, opening up Google to billions in damages.
On Tuesday, the US Court of Appeals for the Federal Circuit ruled in agreement with Oracle, determining that Google's use of Java code in Android was not fair. It delegated the job of determining the amount of damages that Google owes Oracle to a lower federal court in San Francisco.
In 2016, Oracle sought almost $9 billion in damages related to its estimation of $21 billion in profits that Google has earned over the lifetime of the Android platform. Google could have licensed Java from Sun (or Oracle, which acquired Sun), but it chose not to, as was revealed in earlier court documents.
While often portrayed as an underdog fair use case against a big bad proprietary IP firm, in reality the code Google took from Java had been made available under the GPL. Google replaced that open license and redistributed it under the incompatible, permissive Apache Open Source License.
Google violated Java copyright and violated the terms of the open source GPL to give it all the value of Java's code with none of the responsibly to respect the GPL or alternatively to license Java code commercially.
Because that enabled Android rapidly grow into an unlicensed platform that Google could then profit from, its actions may constitute the largest fraud to have ever occurred in the industry.
In 2005, it was common to license Sun's mobile edition of Java to launch new smartphones. Google originally sought to develop Android as a Java Mobile button-phone platform similar to BlackBerry or Windows Mobile, but was blindsided by Apple's release of iPhone in 2007.
The search giant then shifted gears to develop a more powerful device patterned directly on the far more ambitious and sophisticated features and functionality Apple had delivered. A key part of that strategy involved appropriating the value of Java Mobile, then owned by Sun, to create a replacement that used the same language and API construction to leverage developers' existing familiarity with Java Mobile, then the dominant mobile platform.
After Apple's iPhone rapidly conquered the existing smartphone businesses of BlackBerry, Nokia, Palm and Windows Mobile in its first three years, a variety of hardware makers and carriers jumped to support Android as the last remaining alternative.
Oracle sought both damages against Google and a legal injunction on its distribution, describing Google's Android as an "incompatible clone of Java."
During the trial, it was revealed that Rubin had written a memo stating, "If Sun doesn't 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."
Another internal Google document similarly stated, "What we've actually been asked to do (by [Google founders] Larry [Page] and Sergey [Brin]) is to investigate what technical alternatives exist to Java for Android and Chrome. We've 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."
Another element of Google's defense, it turned out, was to claim that the code it took from Java was "fair use" because it was related to achieving compatibility with the Java platform. However, rather than seeking to be compatible with an existing standard, Google only desired to be compatible with the value of the code it appropriated.
In 2014, the U.S. Court of Appeals for the Federal Circuit in Washington issued a ruling that reversed an earlier decision that had prohibited Oracle from claiming copyright for portions of its Java platform used by Google in Android.
That ruling noted that "given the record evidence that Google designed Android so that it would not be compatible with the Java platform, or the JVM specifically, we find Google's interoperability argument confusing."
It added, "the compatibility Google sought to foster was not with Oracle's Java platform or with the JVM central to that platform. Instead, Google wanted to capitalize on the fact that software developers were already trained and experienced in using the Java API packages at issue."
Nearly four years later, the second half of that case has been answered: what Google did was clearly not "fair use," even though vocal proponents of cheap hardware supported that specious argument because stealing Oracle's code and giving it away would indeed reduce the costs of licensing that technology.
On Tuesday, the US Court of Appeals for the Federal Circuit ruled in agreement with Oracle, determining that Google's use of Java code in Android was not fair. It delegated the job of determining the amount of damages that Google owes Oracle to a lower federal court in San Francisco.
In 2016, Oracle sought almost $9 billion in damages related to its estimation of $21 billion in profits that Google has earned over the lifetime of the Android platform. Google could have licensed Java from Sun (or Oracle, which acquired Sun), but it chose not to, as was revealed in earlier court documents.
While often portrayed as an underdog fair use case against a big bad proprietary IP firm, in reality the code Google took from Java had been made available under the GPL. Google replaced that open license and redistributed it under the incompatible, permissive Apache Open Source License.
Google violated Java copyright and violated the terms of the open source GPL
Google violated Java copyright and violated the terms of the open source GPL to give it all the value of Java's code with none of the responsibly to respect the GPL or alternatively to license Java code commercially.
Because that enabled Android rapidly grow into an unlicensed platform that Google could then profit from, its actions may constitute the largest fraud to have ever occurred in the industry.
Google's original concept for its Android phone project
Two years before iPhone appeared, Google acquired an existing "Android" project in 2005, which was essentially an offshoot of Danger, the Java platform powering TMobile's SideKick slider phone. Both Danger and Android were founded by former Apple employee Andy Rubin (who more recently left Google to launch Essential, another Android-based phone project).In 2005, it was common to license Sun's mobile edition of Java to launch new smartphones. Google originally sought to develop Android as a Java Mobile button-phone platform similar to BlackBerry or Windows Mobile, but was blindsided by Apple's release of iPhone in 2007.
The search giant then shifted gears to develop a more powerful device patterned directly on the far more ambitious and sophisticated features and functionality Apple had delivered. A key part of that strategy involved appropriating the value of Java Mobile, then owned by Sun, to create a replacement that used the same language and API construction to leverage developers' existing familiarity with Java Mobile, then the dominant mobile platform.
After Apple's iPhone rapidly conquered the existing smartphone businesses of BlackBerry, Nokia, Palm and Windows Mobile in its first three years, a variety of hardware makers and carriers jumped to support Android as the last remaining alternative.
Oracle's 8 year battle with Google
Google's free distribution of a modified version of Java Mobile rapidly replaced Sun's own software as the platform for low-end mobile devices. After Oracle acquired Sun in 2010, it filed a lawsuit against Google involving copyright infringement of Java by Android.Oracle sought both damages against Google and a legal injunction on its distribution, describing Google's Android as an "incompatible clone of Java."
"we need to negotiate a license for Java under the terms we need"
During the trial, it was revealed that Rubin had written a memo stating, "If Sun doesn't 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."
Another internal Google document similarly stated, "What we've actually been asked to do (by [Google founders] Larry [Page] and Sergey [Brin]) is to investigate what technical alternatives exist to Java for Android and Chrome. We've 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."
Google claimed "fair use" for compatibility, without being compatible
Rather than licensing Java, Google decided to follow Rubin's advice: just take the code, see what happens, and try to defend itself. Part of that "defense" was a fight to suppress the evidence that Android willfully infringed upon Oracle's Java.Another element of Google's defense, it turned out, was to claim that the code it took from Java was "fair use" because it was related to achieving compatibility with the Java platform. However, rather than seeking to be compatible with an existing standard, Google only desired to be compatible with the value of the code it appropriated.
In 2014, the U.S. Court of Appeals for the Federal Circuit in Washington issued a ruling that reversed an earlier decision that had prohibited Oracle from claiming copyright for portions of its Java platform used by Google in Android.
That ruling noted that "given the record evidence that Google designed Android so that it would not be compatible with the Java platform, or the JVM specifically, we find Google's interoperability argument confusing."
It added, "the compatibility Google sought to foster was not with Oracle's Java platform or with the JVM central to that platform. Instead, Google wanted to capitalize on the fact that software developers were already trained and experienced in using the Java API packages at issue."
Nearly four years later, the second half of that case has been answered: what Google did was clearly not "fair use," even though vocal proponents of cheap hardware supported that specious argument because stealing Oracle's code and giving it away would indeed reduce the costs of licensing that technology.
Comments
API is just the interface (e.g. add(operand1, operand2) - i.e. no implementation to that - and implementation is basically 99%+ of the code).
Being able to use an API for compatibility purposes is no different than for example Open Office being able to implement the file format for Word. The need for competition outweighs the argument as an API protected IP. Google's implementation uses the API (common) and then the implementation code which is probably more than 99% of the code base. As long as Google did not copy the code itself the API itself should be fair use. Languages and APIs should not be able to be protected as API.
The court has already previously ruled that you cannot protect interfaces for hardware for the purposes of locking out the competition on things like printer cartridges etc. An API is not much different than the software equivalent.
Google thought it was above such paltry concerns as fair use. It believed that because it gave Android away for free, then it wasn't a commercial product and so no license was needed. Unfortunately, the court has decided that because Android is used to harvest user data which is then sold on to advertisers, then it is actually a commercial product: Google does make money from it after all.
So they are guilty, but what this means in monetary terms is the big unknown. Guilty does not mean they owe Oracle any money, especially if they can prove that Android doesn't make them much. This could be tricky. Google takes 30% from apps sold on the app store. But then a lot of them are free. Google is more concerned with harvesting data from iOS users than Android users. Is that another point in favour of them? Does Android make so little money for them that it translates into not very much owed to Oracle?
Google was hoping that no one would see this because the revenue was not immediately visible.
This is part of the bigger problem of large enterprises using open source and not really returning anything close to what they're making from it. It really makes life hard for the folk who put in the work for stuff like the Django framework.
*Checks watch*
He's late.
So in reality Ellison suffered no loss due to Google not licensing Java from the previous owner. It's really not all that different from a patent troll buying up a couple of unused patents for a hundred bucks and then using a claim from one of them to sue Apple for stealing from them for use in Siri or something and demanding $Millions for the harm.
As for "stolen Java" the way that Google used it was more like copying chapter names and then writing the original book that filled the rest of the 1000 pages as I've understood it. If accurate it hardly seems like a stolen product, more like a handful of bolts scooped up.
What Oracle has done with Java since they bought it (well after Android was on the market) has sent it far downhill in my view. First they started bundling trashy and near impossible to rid ASK malware in with their automatic Java updates to slip it past consumers, then trying to force McAfee subscription virus software on those same consumers by using the same sneaky method, and then Yahoo snatching your browser and who knows what other software packages that many folks didn't even know was being installed too. That they escaped being sued for it is only because of technicalities IMO. It's still despicable conduct.
https://www.infoworld.com/article/2613298/java/java-scam--how-oracle-and-ask-profit-from-sneaky-add-ons.html
https://www.techlicious.com/blog/java-yahoo-browser-search-settings-hijacking/
Even the Oracle Java software as a whole has become more problematic security-wise and far less trustworthy, to the point that a great number of folks won't get anywhere near it given the choice, and professional advice is to rid your computer's of it.
So I don't weep for an Ellison-led Oracle who wants to claim they've lost profit on Java because of Google. They're not seeing the profits they could due to their own uncaring attitude towards it, and destroying it's reputation further with their sneak malware installs seemingly driven by a personal vendetta pursued by Larry Ellison and his Ask search bar and Yahoo browser replacement hoping to cause harm to Google but hurting computer users to do so. He evidently does not care about any collateral damage as long as he gets what he wants.
He paid little for Sun because it wasn't worth much. He was hoping he could discover hidden gold there and with his $B's it was a only a blip on the financials. Ellison didn't want Sun's Java because he thought he could make it better IMO. He was buying a lotto ticket that could be tossed away without much loss if it didn't pan out.
As far as I am concerned this is a very slippery slope since protecting languages, protecting APIs only leads to death of competition. I have worked on projects that probably contains huge numbers of lines of code (some of it good, much of it bad and duplicated) and protecting a language and protecting an API would only lead to both the compiler being made a violation of IP, but also language translators, and things like Wine, of course, would be illegal since it implements APIs to run Windows Applications on Linux...
I don't have much love for Google - but I am worried about the long-term consequences.
"A language and the standard library API are inseparable" provided that you don't replicate but just use that language and that library in your project. But if you build a new virtual machine and put into that the libraries copied from the competing virtual machine then you crash onto the IP barrier.
Here there were endless arguments about "errno.h"
For once I have to side with Google (note to self, go wash mouth out with soap).
If Oracle prevail, hundreds if not thousands of other cases will come crawling out of the woodwork.
This can't be what Trump meant by MAGA as it is only true if you are a lawyer.
Thinks like Windows Subsystem for Linux (services API kernel - of Linux) maybe the EFF should go after Windows now. WINE. With a little luck maybe we can take out both Linux and Microsoft's implementation of services for Linux on Windows .
Sun invested hundreds of millions of dollars creating the Java platform and marketing it. In doing so, it became well known to software developers who created a large ecosystem of server-side and mobile applications for it (not to mention having a ton of experience with it). Andy Rubin and company come along with Android and realize that they need a good software development environment for it. As stated in an email exchange between Tim Lindholm and Andy Rubin, they understood well that the only option was Java, but they simply didn't want to pay a licensing fee for it. So they effectively cloned and owned Java by taking advantage of open-source projects at the time which had special licensing terms for Java. Thus gaining all the benefits of the money invested in the Java platform by Sun within Android (which went on to help Google make a lot of money), but not paying a dime for it.
If you work in the software industry and somehow think it's cool that they found this loophole and exploited it, then I sincerely hope someone does the same to any products you happen to work on. It's not right and I refuse to use Android because of it. I love Linux, and have contributed to it over the years since it was my learning ground during my formative years as a software developer, but I won't touch Android.
And if you think that simply because Oracle bought Sun, it gives them a pass, it doesn't.
He didn't. And he doesn't.
He still has his Lotto ticket and might end up paying nothing at all for Sun, even after helping destroy Java thru his company's negligence.
https://fossbytes.com/9-lines-of-code-that-google-stole-from-oracle-java-android/
That’s a function, not an API definition. It’s nine of stolen code that a novice Java developer could have implemented in ten minutes. But it is stolen, most probably during the copying of the APIs that would give them something that was compatible enough with Java, but not enough to be portable.
If you want to implement Java and its APIs for a commercial product then you have to negotiate a license. It doesn't matter if you rewrite all the APIs from scratch because what you are paying for is the compatibility across platforms and for the further development of the language and the APIs you’re licensing.