Oracle最初告Android代码里侵犯了他们旗下Java知识产权的时候,大多数不明真相的围观群众都是站在Google这一边的,毕竟Oracle蛮横不讲理惯了嘛。 但是,这次我们还真是当了不明真相的围观群众了,美国专利博客网站FOSS Patents周五撰文称,在Android 2.2的源代码中发现了43个与Java代码中完全相同的文件。FOSSpatents博客是专门研究分析科技侵权案件的,他们今天抛出了一枚重磅炸弹:他们发现至少有43个Android源文件是直接从Java的代码里复制/粘帖过来的(如下图)! 任何人都可以从网上下载到Android 2.2的代码并对其检测。该博客作者弗洛安·穆勒(Florian Mueller)称,他发现Android中43份文件代码与Java 2标准版第5版中的代码完全相同。其中部分代码甚至还清楚地被Sun表明为“专有/机密”。 穆勒称,“不管这些代码属于私有还是GPL协议,都不应该被甲骨文之外的第三方以Apache开源协议公布出来。”
当你发现37个Android源文件里都有Oracle/Java标记为“私有/机密”以及“不要发布”字样,而且至少有6个以上的Android 2.2 Froyo和Android 2.3 Gingerbread代码都是从Java 2 Standard Edition反编译出来并在没有得到授权的情况下重新通过Apache开源授权再发布出来的时候,你用脚趾头也想的出到底Android是不是侵权了。 没错,Google就是直接复制了Oracle的Java代码,粘帖上新的授权,发布出来。 不过这些复制的代码似乎都是测试之用的,还谈不上太严重,但是抄了还是抄了,Oracle应该不会大事化小的。 两个疑点 关于Florian Mueller发布的关于Android抄袭Java代码的文章里,存在两个疑问。 首先是第一组的7个抄袭的java文件(PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java 和 PrincipalImpl.java)都属于源代码里的测试分支。任何程序员都不会将测试代码放到最终发布的产品里。这些测试代码都是内部测试之用,以确保软件发布前的质量。 然后是另外一组的37个抄袭文件,他们确实被打包成一个叫做MMAPI.zip的文件里了,并为了对某个类型的芯片组进行支持而进入了音频驱动原生代码库里。这其实是值得深入挖掘的部分,但仔细检查之后你会发现这些文件也并未随Android发布出来,Google里确实有人开始不小心将它们放进了最终代码里,但后来都删除了。 再说说第一组的7个文件,他们都是Sun发布在自己网站上的,帮助开发者测试自己的代码debug之用。但有Android或Harmony开发者用他们反编译并重建之,而不是直接用了Sun提供的代码。之后还在文件头部错误的粘帖上了Apache的授权,可能是自动的脚本吧。但毕竟他们没有随最终的Android发布出来。 PolicyNodeImpl.java这个文件在2010年10月30日从源代码树里删除,另外6个Java文件则在2011年1月14日被删除,删除这些文件的开发者Dan Bornstein给出的注释是“删除无意义的测试”。 是,Google确实在Android里抄袭了Java的代码,但可能都属于两次错误的操作,而且这些抄袭代码都没进入最终发布的Android里,所以怎么说呢?情节还不算严重吧。人民群众可以理解所谓的“不小心”或“临时工所为”,但Oracle可不是善茬儿,它可能理解Google吗?
|