An intellectual property expert has uncovered 43 instances where it appears that Google copied Java code without permission in the most recent versions of the Android operating system.
The discovery could challenge Google's defense in a dispute with Oracle over Java patents and copyright material in Android.
"The discovery process could be very fruitful for Oracle, and may become dreadful for Google," wrote Florian Mueller, who has been closely following the case and founded the NoSoftwarePatents campaign, in a blog post.
Mueller has closely examined the Android code and found six files, in addition to one that Oracle pointed out in its complaint, that are nearly identical to Java files. The files are found in Froyo, which is Android 2.2, and Gingerbread, Android 2.3.
In addition, Mueller points to 37 files in the Android code that include notices that say the code is proprietary to Sun.
"No matter what Google says, that copyright header is anything but a permission to relicense the file under the Apache Software License," Mueller wrote. Google licenses Android to users under the Apache license. "Even if one claimed that Oracle/Sun later made the file available under the GPL (for which I haven't found any conclusive evidence), that wouldn't allow such a license change either."
While there are some minor differences between the code that Google is using and the original Java code, Mueller found that the differences come from the use of a decompiler. When he used a Java decompiler called JAD and decompiled seven different Java files, he found that the result was nearly identical to files found in Android.
Google did not reply to a request for comment about Mueller's allegations.
One developer who writes for ZDnet, Ed Burnette, argued in a blog post that some of the code Mueller points to wouldn't be shipped in devices and has been deleted. Seven of the files are test code, which doesn't get shipped with the product, he said. In addition, those files were deleted from Android either late last year or in January, he said.
The remaining files are in a directory used for native code audio drivers for one kind of chip set, Burnette said. Those files also don't ship with Android, were probably uploaded by accident and should be deleted, he said.
However, Mueller says that the code in the test tree actually contains code related to security and that there are many Android devices that shipped with that code, as well as with the code from the remaining files.
Though the files are not in the current Android code tree, they were used in the two versions that currently make up more than half of the Android phones in use, he noted.
"From a legal point of view, you can't make an infringement undone only by removing it from one particular set of files -- you just avoid additional damage," Mueller said in an e-mail interview.
Oracle filed the lawsuit in August, claiming that Google's Android operating system infringes on Java copyrights that Oracle acquired when it bought Sun. Google has called the suit baseless, denying infringement.
If Google is found to infringe, it could be required to pay Oracle a licensing fee for each handset made that uses Android. It could pass that cost on to device vendors, but that would diminish the attractiveness of Android as a free operating system.
Android, which has grown dramatically in popularity over the past year, is under legal attack from many companies. Other Android-related lawsuits include Apple's suit against HTC; Microsoft's suit against Motorola; and Gemalto's suit against Google, Motorola, HTC, and Samsung.