Bits of Android Stolen from Java?
They say good artists borrow, but great artists steal. Apparently that sentiment doesn’t carry over into computer programming. In computers, that sort of thing violates another’s intellectual property (IP), and can land you in a lot of trouble.
Oracle has turned up some code that is allegedly being used in Android 2.2 and above which they claim belongs to them. The code in question is purported taken directly from Oracle’s Java, line for line. What’s worse, it’s not just a few lines, it’s a fairly sizable chuck, spread across 43 files — or so we’ve been told.
Oracle isn’t alone in their attacks on Android. Microsoft is also suing anyone who makes an Android handset — unless they pay Microsoft a licensing fee, which sounds a lot like extortion to some analysts. HTC and Samsung have already ponied up for Microsoft’s “litigation protection”.
When looked at in whole, the alleged infringing code represents a small portion of Android’s codebase, and it’s unlikely that this will pose any serious threat to the future of Android. The wheels of justice move slowly, so we’ll likely have quite a while before any action is taken in this matter.
But that’s just part of the story. ZDNet’s Ed Burnette took a closer look. To clarify, there are two sets of files in question. The first set contains seven files: PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java, and PrincipalImpl.java. These are all in the unit test portion of the code. Unit testing is a way in which developers can write code and test it against a pre-determined set of cases to see if their logic has flaws in it. It’s logical unit tests be common across development platforms. Additionally, code used for unit testing is for development purposes only — it doesn’t get shipped with the final code.
What’s really interesting is that Sun (later acquired by Oracle) originally published those seven files on their website — to help people writing code so their code could be better. For some reason they got taken apart and put back together with the wrong licensing header. To fix this “problem” we simply need to replace the modified files with the originals.
The remaining 37 files in question are actually all contained in one zipped file: MMAPI.zip. That particular file is hidden away in a directory where native code audio prices live… and according to Mr. Burnette, it’s only for one chipset in particular. What’s more, this file isn’t shipped with Android, it had apparently been uploaded by mistake — and can easily be deleted without any negative impact.
To tie things up all neat with a bow, Google has already taken care of these problems. PolicyNodeImpl.java was deleted last October and the others in January of this year.
When the court has had an opportunity to review the case and hear all sides, Google could be enjoined from distributing Android, which is unlikely because they’ve already removed the infringing parts.
When you see other stories floating around about how “Android stole Java from Oracle”, tell them politely that their facts aren’t all there, and point them over to our article to clear everything up.