Android代碼抄襲Java的小辮子被牢牢抓住
Google聯合創始人之一拉里·佩奇(Larry Page)將取代埃里克·施密特(Eric Schmidt)出任CEO。施密特將擔任Google執行董事長,負責交易和政府事務,并擔任佩奇和另外一名創始人賽吉·布林(Sergey Brin)的顧問。這些人事變動將于今年4月4日生效。然而佩奇尚未來的及燃起新官三把火,Oracle卻吹響了戰爭的號角。Android 代碼抄襲案有了惡性的發展,而佩奇能否應對此次事件將成為他成為谷歌新的CEO后最大的外界挑戰。
Android 代碼抄襲 Java 的小辮子被牢牢抓住
Oracle最初告Android代碼里侵犯了他們旗下Java知識產權的時候,大多數不明真相的圍觀群眾都是站在Google這一邊的,畢竟Oracle蠻橫不講理慣了嘛。但是,這次我們還真是當了不明真相的圍觀群眾了,FOSSpatents博客是專門研究分析科技侵權案件的,他們今天拋出了一枚重磅炸彈:他們發現至少有43個Android源文件是直接從Java的代碼里復制/粘帖過來的(如上圖)!
當你發現37個Android源文件里都有Oracle/Java標記為“私有/機密”以及“不要發布”字樣,而且至少有6個以上的Android 2.2 Froyo和Android 2.3 Gingerbread代碼都是從Java 2 Standard Edition反編譯出來并在沒有得到授權的情況下重新通過Apache開源授權再發布出來的時候,你用腳趾頭也想的出到底Android是不是侵權了。 沒錯,Google就是直接復制了Oracle的Java代碼,粘帖上新的授權,發布出來。
不過這些復制的代碼似乎都是測試之用的,還談不上太嚴重,你可以看看我們的深入分析,但是抄了還是抄了,Oracle應該不會大事化小的。
Android抄襲Java代碼兩大疑問
關于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嗎?