Зафиксированы и опровергнуты факты прямого копирования кода Java SE в Android

21 января 2011 года

Флориан Мюллер (Florian Mueller), известный борец с патентованием программного обеспечения, опубликовал результаты изучения обоснованности обвинений Oracle в копировании оригинального кода платформы Java при реализации платформы Android. Выявленные в процессе исследования факты превзошли все ожидания - как минимум 43 файла в дереве исходных текстов платформы Android содержат достаточно большие блоки кода, полностью совпадающие с оригинальным кодом платформы Java SE.

Более того, в 37 файлах из состава Android явно присутствует пометка об их проприетарном или конфиденциальном характере. Данные файлы судя по всему имеют отношение к реализации Mobile Media API из состава Sun Java Wireless Toolkit. Например, заголовок файла PolicyNodeImpl.java гласит "Copyright 2004 Sun Microsystems, Inc. All rights reserved. SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.".

Еще 6 файлов из состава платформы Android 2.2 и 2.3 явно декомпилированы из Java 2 Standard Edition и перелицензированы под лицензией Apache без согласования с правообладателем. Даже если допустить, что в конечном итоге данные файлы входят в состав OpenJDK и поставляются под лицензией GPL, самовольное изменение лицензии может иметь серьезные последствия.

Примечательно, что в обвинительных материалах Oracle [a фигурировали] достаточно спорные утверждения, связанные как правило не с непрерывными блоками кода, а с совпадением структуры и частичным пересечением имен методов и переменных в библиотеке классов Java. Полный отчет о проделанной Флорианом Мюллером работе с детальным построчным сравнением кода можно прочитать по следующим ссылкам: 1, 2, 3, 4, 5, 6, 7, 8, 9.

Тем не менее, опровергнуть обнаруженные факты оказалось значительно проще, чем предполагалось. Почти сразу после публикации была изложена другая точка зрения, в которой показано, что выводы Флориана Мюллера являются ошибочными.

Семь из фигурирующих в разборе файлов (PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java и PrincipalImpl.java) находятся в исходных текстах в каталоге unit-тестов(недоступная ссылка), т.е. используются только для внутреннего тестирования и не входят в конечный продукт. Данные файлы были в свое время опубликованы на сайте Sun для упрощения отладки и тестирования кода. Изменение лицензии в данных файлах можно объяснить результатом работы какого-то скрипта, который автоматически добавил упоминание лицензии Apache во все файлы проекта. Более того, эти файлы уже удалены из репозитория: PolicyNodeImpl.java удален 20 октября 2010 года, а остальные файлы - удалены 14 января 2011 года. Причем удалены с комментарием "удаление бессмысленных тестов".

Остальные 37 файлов представлены в репозитории внутри архива MMAPI.zip, который находится в директории(недоступная ссылка) с кодом аудиодрайвера для одного из поддерживаемых чипсетов. Архив MMAPI.zip содержит модифицированную версию Java ME Mobile Media API (MMAPI) и был добавлен не Google, а входящей в альянс Open Handset Alliance компанией SONiVOX. Код был добавлен в рамках разработки фреймворка Embedded Audio Synthesis (EAS). В сборке платформы данные файлы не участвуют, в документации на фреймворк EAS данный архив помечен как не подлежащий распространению набор примеров. Судя по всему MMAPI.zip был загружен по недосмотру.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Зафиксированы и опровергнуты факты прямого копирования кода Java SE в Android», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.