Ещё больше доказательств того, что Android содержит скопированный Java-код

    Обращаю внимание на продолжение этого топика: «Исходный код Android, Java и нарушение авторских прав: продолжение».

    Флориан Мюллер в своём блоге FOSS Patents опубликовал доказательства того, что по крайней мере 43 исходных файла Android, по всей видимости, непосредственно скопированы из Java.

    В дополнение к судебному иску Oracle против Google о нарушении семи патентов, Мюллер обнаружил материал, который Oracle может представить в суде в качестве примеров нарушения авторских прав в коде Android.

    В частности он обнаружил шесть файлов в одном каталоге, которые были прямо скопированы. Все они, видимо, были получены с помощью декомпилятора. Эти файлы являются частью и Froyo (Android 2.2), и Gingerbread (Android 2.3), в отличие от файлов, представленных Oracle.

    Кроме того, Мюллер определил 37 файлов Sun с пометкой «проприетарное / конфиденциальное» (PROPRIETARY/CONFIDENTIAL) и файл с уведомлением об авторском праве, в котором написано: «Не распространять!» (DO NOT DISTRIBUTE!). Эти файлы, по всей видимости, связаны с Mobile Media API от Sun Java Wireless Toolkit. Если только компания Google не получила лицензию на этот код (что маловероятно, учитывая содержание и тон этих предупреждений), то это ещё одно нарушение.

    Интересно, что оригинальная версия PolicyNodeImpl.java также была помечена как «проприетарное / конфиденциальное» (PROPRIETARY/CONFIDENTIAL) в Java версии 5.0. В версии 6.0 файл был уже лицензирован по GPL 2. В официальном ответе Google говорилось, что Oracle изменила лицензию. Это правда, но очевидно, что оригинальная лицензия была наоборот строже. В любом случае, то ли по собственной лицензии, то ли по лицензии GPL, соответствующий код никак нельзя было перелицензировать по лицензии Apache кем-то другим, кроме правообладателя (Oracle / Sun).

    Флориан Мюллер документально оформил своё исследование в девяти PDF-файлах с суммарным объёмом 46 страниц.

    В первых семи файлах (1, 2, 3, 4, 5, 6, 7) сравниваются декомпилированные версии файлов из Java 2 Standard Edition (J2SE) версии 5.0 с соответствующими файлами в исходном коде Android. Строки с различиями в содержании отмечены красным цветом. Количество различий ничтожно. В большинстве, эти различия ограничиваются комментариями или несколькими перемещениями, не влияющими на логику программы.

    Вышеупоминавшемуся PolicyNodeImpl посвящён шестой файл, а в «8 PolicyNodeImpl source copyright notices.pdf» приведён текст двух лицензий Oracle / Sun, использовавшихся для этого файла. Никаким образом этот файл не мог быть перелицензирован по Apache.

    В файле «9 SJWT copyright notices.pdf» перечислены уведомления об авторских правах, обнаруженные в 38 других файлах, распространяемых в рамках Android (файл с уведомлением об авторском праве плюс уведомления, найденные в начале 37 файлов с исходным кодом).

    UPD. Альтернативная точка зрения на ситуацию: «Oops: No copied Java code or weapons of mass destruction found in Android» (спасибо destym за ссылку).

    UPD 2. Продолжение этого топика: «Исходный код Android, Java и нарушение авторских прав: продолжение».
    Поделиться публикацией

    Комментарии 94

    • НЛО прилетело и опубликовало эту надпись здесь
        +3
        Вряд ли. Oracle куда выгоднее получать отчисления с каждого проданного устройства на данной ОС.
          –3
          Oracle может потребовать отчислять денег с каждой копии андройда. Но ведь сам андройд то бесплатный.
            –14
            ой ли? это исходники бесплатные. а гугл-то продаёт не исходники, а ось со всеми логотипами и прочим. иначе б какой смысл вкладывать столько денег в развитие?
              +9
              Гугл зарабатывает на рекламе в приложениях и на платных приложениях в маркете.
                +17
                Google не продает Android.
                  +1
                  Конечно не продает, бери качай, но если ты производитель телефонов возьми и отстегни за каждое устройство 10$
                    +1
                    отстёгивать нужно только за gmail/market/maps/etc, за сам андроид напрямую гуглу платить не нужно (ненапрямую нужно платить, например, за mp3 или activesync)
                  –1
                  Google продаёт пакет своих программ под Android: Android Market, GMail, Google Calendar, etc…
                    0
                    кому?
                      +6
                      Насколько я понимаю производителям. Поэтому Китайские телефоны / планшеты идут без маркета и т.п.
                        +1
                        Как пример Archos хороший и дешевый планшет.
                        Но с голым андроидом и без программ от Гугла

                        П.С. Никто не мешает вам закачать и установить их самостоятельно, но они не идут в stock версии
                          0
                          Вообще-то, устанавливать их самостоятельно не вполне законно, если я правильно помню историю с CyanogenMOD.
                            +1
                            Правильно, т.к. они проприетарные и вы их не покупали, но есть законный обход.
                            История с CyanogenMod закончилась тем, что единственный законный способ такой:

                            1. У вас есть Android устройство с пред-установленными программами от гугла
                            2. Вы делаете бэкап этих программ
                            3. Устанавливаете другую сборку Андроида
                            4. Восстанавливаете «пред-установленные» программы
                              +1
                              Мне кажется, это не законный обход, а перекладывание ответственности с разработчиков CyanogenMOD на конечного пользователя.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        +8
                        Спасибо за «доброе» слово, чем же я его заработал )))
                        Кто вам мешает взять исходный код Андроида и скомпилировать свою сборку? Никто, это Open-Source
                        А вот поставить туда Android Market / Gmail или Google Calendar, вам придёться получить лицензию от Гугла, или я где-то не прав? Может объясните?

                        Как раз на эту тему был конфликт между Google и Cayanogen mod
                          +1
                          Всё Вы правильно говорите!
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +1
                      ага, за компашки уже платим — за то, что ты туда можешь записать. теперь за телефоны. и причем платить не одному, а каждому свое — Михалкову — свое, Ораклу — свое и так всем-всем кто еще захочет… ой ли, каждому по проценту — так и все 100% выйдут.
                        0
                        Напоминаю, что в мире PC оно так и происходит.
                      +3
                      И? Google использует платформу в коммерческих целях раздавая её бесплатно, но при этом получая с этого доход. Там есть к чему придраться и заставить лицензировать код за денежные отчисления, хотя его скорее попросят удалить чужую часть кода.
                        +8
                        >… с каждой копии андройда. Но ведь сам андройд то бесплатный

                        Я конечно извиняюсь, что смею Вас исправлять, но в слове «андроид» нет буквы «й». Её там нет. Нет.

                        Мне кажется, что НЛО должно сделать большую, огромную надпись в блоге «Android» с пояснением как правильно писать это слово, потому что эта тема поднимается чуть ли не в каждом посте, и все ровно опять находится НЕКТО, кто непонятно почему пишет через «й». А проблема тем временем набирает оборотов и, ну реально, бесит!
                          0
                          Попросите РуЦентр с его рекламой букв кириллических доменов — они набили в этом руку
                            +2
                            Ничего Вы не понимаете, это новый Йазык! Вдобавок — в нём «не» всегда пишется раздельно, нет буквы «ё». Усовершенствования данного йазыка, пожалуйста, постить с комментарием.

                            Я конечно йзвйняюсь, что смею Вас йсправлять, но в слове «андройд» нет буквы «й». Ее там нет. Нет.

                            Мне кажется, что НЛО должно сделать большую, огромную надпйсь в блоге «Android» с поясненйем как правйльно пйсать это слово, потому что эта тема поднймается чуть лй не в каждом посте, й все ровно опять находйтся НЕКТО, кто не понятно почему пйшет через «й». А проблема тем временем набйрает оборотов й, ну реально, бесйт!
                              +2
                              звучйт не плохо, е-мае)
                                0
                                Made my day!
                                0
                                Полагаю, что это тот же лингвистический баг, что и с «выйграть» :) Надо послать баг репорт
                                  0
                                  выйграть, войны, андройд
                                    0
                                    Кажется, я могу помочь Вам развидеть подобные ошибки.
                                      0
                                      del
                            0
                            Компании большие, если дойдет до суда, то судится будут долго…
                              +15
                              Судиться будут долго — это точно. А пока будут судиться гугл скорее всего просто перепишет все что необходимо. Заплатит штраф и все разойдутся.
                              Платит отчисления с каждой копии бесплатной ОС — это перебор.
                                0
                                Как вариант — будут платить за патент, а не с копии. Или ничего :)
                                  0
                                  Платит отчисления с каждой копии бесплатной ОС — это перебор.
                                  Ну а что? Если за каждую копию ОС потребовать отдельную квитанцию, то это наказание похуже штрафа. :)
                                  +1
                                  Oracle решил заработать на Google
                                    –1
                                    так а зачем чужую интелектуальную собственность присваивать? если бы к моей жене пришел сосед попить кофе когда я на работе (вру, не женат, просто пример возможно подходящий :) ), и мало того, уходя насрал в прихожей (про копирайты, DO NOT DISTRIBUTE) — я бы тоже в суд подал, не на соседа (производители) а на жену (google). Поэтому вполне справедливо парням отгрести по полной как минимум за халатность при реверс-инжиниринге :)
                                    +7
                                    Справедливости ради надо сказать, что реализовать функциональность по-другому достаточно сложно (я смотрел первые два файла).
                                    Особенно при жестком задании интерфейсов и спецификаций классов.
                                      +2
                                      То-есть минусов накидать — это порядке вещей, а конкретно в код посмотреть никак?
                                      Свои мысли тоже сложно написать — пальцы отвалятся?
                                        +22
                                        Провожу курсы по лечению карма-зависимости. Бесплатно :-)
                                          +6
                                          Нужно так.
                                          Провожу курсы по лечению карма-зависимости. За карму.
                                            –2
                                            Первым 3 — спец предложение: 30-часовой курс лекций по тонкому троллингу ;-)
                                            +2
                                            Странно видеть обвинения в кармазависимости к человеку, который просит комментариев. Очевидно, кармазависимыми как раз являются минусаторы. Их и лечите.
                                          0
                                          Если много завязок — всегда сложно. Но тогда встает вопрос — а кто от кого зависеть будет, если Гугл перепишет код под себя, а Ораклу останется только плеваться, что используют уже не его код, с свободный Гугловый? А если так подумать, то Java писалась как раз для программирования всяких микроконтроллеров, а совсем не серверных и десктопных приложений.
                                            0
                                            Вы пошутили или вас кто-то обманул. Если подумать, то сколько было микроконтроллеров во времена создания Java, которые могли нести на борту JVM? Или это была другая Java, без GC, байткода и компилировалась не в байткод а в нативное приложение сразу для MK.
                                          –11
                                          Все, что ли, ополчились на бедный Google? Сначала, Facebook, потом Oracle, а следующий кто? Я не пользователь Google, но мне его (гугла) жалко…
                                            +13
                                            «бедный Google?» Вы это серьезно?
                                            –4
                                            Болею за Oracle.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                –6
                                                Тролль такой тролль. Что ты, что оракл.
                                                0
                                                Еще немного и они докопаются, что большинство софта под Андроид написано на Жаве!
                                                  –1
                                                  А вы полагаете, что это случайно так получилось? :)
                                                  +7
                                                  Ппц, привести тривиальные/очевидные имплементации крошечных классов (особенно 7ой порадовал), и на основании этого говорить, что всё украдено. Это как если бы я написал метод

                                                  public bool Contains(object[] array, object candidate) {
                                                    //…
                                                  }

                                                  и подавал бы иск к каждому, кто внутри делает foreach() и возвращает true, если нашелся элемент == candidate.

                                                  Внутри Android портированная версия Apache Harmony. Почему к ней нету претензий?
                                                    +2
                                                    потому что она под лицензией apache, которая разрешает подобное использование

                                                    имена полей, методов, куски кода с одинаковой логикой — очевидный копи-паст
                                                      +4
                                                      Да вы гоните. Где в лицензии на Java SE указано «проекту Apache Harmony разрешается декомпилировать и копипиздить стдлибу java»?

                                                      В приведенных кусках кода практически любой оператор/наименование/поле/другую строку можно объяснить либо стандартом Java Google Code, либо требования java Beans и техническими аспектами самой java. Не более. Надеюсь, вы пишете на java и понимаете, что я вам тут написал.

                                                      Слово «очевидный» вспоминают тогда, когда формальных доказательств недостаточно. Почитайте еще раз мой коммент про очевидность копипаста блоков кода.
                                                        +1
                                                        > Да вы гоните. Где в лицензии на Java SE указано «проекту Apache Harmony разрешается декомпилировать и копипиздить стдлибу java»?

                                                        это уже проблемы Apache
                                                        +3
                                                        имена полей в двух классах impl, которые написаны придерживаясь строгих стандартов кода будут совпадать в 90% случаев. Гуглу надо было называть поля по другому просто «чтоб не могли придраться»?
                                                        +5
                                                        Взгляните как раз на седьмой пример. Ну кто в здравом уме напишет такое без копипасты?

                                                        public boolean equals(Object obj) {
                                                          if (obj instanceof PrincipalImpl) {
                                                            PrincipalImpl principalImpl = (PrincipalImpl) obj;
                                                            return user.equals(principalImpl.toString());
                                                          } else {
                                                            return false;
                                                          }
                                                        }
                                                        


                                                        Напрашивается «return user.equals(principalImpl.user)» или «return user.equals(principalImpl.getName())», но уж точно не «toString()».
                                                        +1
                                                        Через пару лет гугля просто купит Оракл
                                                          +10
                                                          Лучше б они SUN купили вовремя
                                                            +3
                                                            Лучше б Sun купил Oracle и они насобачили красивый Андроид.
                                                              0
                                                              А потом они же купили гугл и подавали в суд на микрософт… Ну как альтернативная реальность
                                                                0
                                                                У Sun с ораклом было что делить — оракл же на java фактически все свои девелоперские и клиентские тулзы написал. А с микрософтом что? Они свое решение перли и прут — тут чистая конкуренция, никто никого из них не купит.
                                                            0
                                                            Ага, и весь мир в придачу.

                                                            Неизвестно еще, кто мощнее — Oracle или Google.
                                                            +3
                                                            Интересно, что блог он назвал FOSS Patents…

                                                            Все страшнее становится код писать… Так дойдет до того, что скоро возле каждого программиста должен будет сидеть юрист…
                                                              +4
                                                              Будет проще — при коммите в svn, код автоматически подвергается случайной перетасовке функций в классе, имена рефакторятся на синонимы из словаря, табы + пробелы прыгают в коде как зайчики, а комментарии гуглотранслейтом переводятся на клингонский и обратно, вроде смысл тот же, но уже по другому написано.
                                                                0
                                                                Уху… и каждый раз мы будем материться, а потом этими же руками merge делать.
                                                                  0
                                                                  на клингонский и обратно )))
                                                                +2
                                                                Это бизнес, детка, ничего более. Oracle SUN купила? Так точно. А google купил? Нет. А на Oracle денег не хватит, не по Сеньке шапка. Болею за Android обеими руками, но платить нужно. Вопрос лишь в том как. С каждого проданного устройства — бессмысленно. Либо делиться деньгами с рекламы, либо ежегодно платить фиксированную сумму, или делится патентами (вот только надо ли это Oracle?) Единоразово тут не получится — не тот случай.

                                                                P.S. И когда уже NFS Shift будет работать на Galaxy S… Хотя о чем это я…
                                                                  0
                                                                  работает уже, не с рутрекера
                                                                    0
                                                                    Пошел в маркет, благодарю.
                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                    +10
                                                                    Альтернативная точка зрения на ситуацию: "Oops: No copied Java code or weapons of mass destruction found in Android".
                                                                      +2
                                                                      Спасибо за отличную ссылку. Рекомендую автору добавить её в пост, чтобы не вводить народ в заблуждение.
                                                                        +1
                                                                        Да я её сразу после прочтения комментария destym добавил :)
                                                                          0
                                                                          Мде… Не даром на книжке писали «DONT PANIC» большими дружелюбными буквами =)
                                                                            +3
                                                                            Ещё можно добавить не просто ссылку на альтернативу, а перевод пары абзацев:
                                                                            ==========
                                                                            На повестке два набора файлов.

                                                                            Первый набор из 7 файлов находится в каталоге с юнит-тестами. Любой разработчик подтвердит, что юнит-тесты не поставляются с продуктом, а обеспечивают качество кода в процессе разработки.

                                                                            Второй набор из 37 файлов в действительности заархивирован в MMAPI.zip файл и положен в каталог к аудио-драйверам. Флориан реально должен был постараться, чтобы их откопать. Я дважды проверил make-файлы и подтверждаю, что эти файлы тоже не включены в поставку. Файл был загружен по ошибке и его просто можно удалить.

                                                                            Я нашёл только одну странность. Sun опубликовал эти 7 файлов на своём сайте, чтобы помочь разработчикам тестировать и отлаживать свой код. По какой-то причине, то ли Android-разработчик, то ли Hardmony-разработчик эти файлы декомпилировал, вместо того, чтобы взять оригиналы с сайта. Позже текст лицензии попал в шапку файлов, возможно с помощью какого-то автоматического скрипта.

                                                                            Какого же решение? Просто замените файлы оригинальными или сотрите тексты лицензии. В любом случае эти файлы не входят в поставку.

                                                                            Upd: 14 января эти файлы уже удалили из репозитория с комментарием «Удалены бессмысленные тесты» :)
                                                                            ==========
                                                                          0
                                                                          Chert, ne zametil vashego kommentariya! :(
                                                                            0
                                                                            Картинка хороша, но ссылку уже дали чуть выше (получасом ранее).
                                                                              0
                                                                              Виноват, не заметил, очень уж ссылка понравилась – а тут такой пост, сразу полез комментировать ;)
                                                                            0
                                                                            Добавьте где-нибудь в заголовок, что все эти претензии выеденного яйца не стоят (см. подробный разбор этих файлов на zdnet по ссылкам выше).
                                                                                +1
                                                                                Человек там, ИМХО, что-то путает. Он говорит, что типа Оракл может потребовать платить мзду с каждой копии андроида.

                                                                                Но извините, этот код не присутствует на конечных продуктах, ни в виде архивов, ни в виде скомпилированного кода. Эти файлы вообще никак не затрагивают конечный продукт.

                                                                                Если оракл хочет добиться платы за то, что в репозитории оказались какие-то файлы, права на которые теперь перешли ораклу — пусть попробует. Это всё равно, что вам кто-то закинул некие файлы, которые вы вообще не использовали, а теперь требуют, чтобы вы за использование этих файлов платили.

                                                                                Я не знаю, может быть американское законодательство в этом отношении действительно настолько прогнило, но мне как-то слабо верится, что оракл чего-то добьётся. Особенно в свете того, что против оракла уже подали коллективный иск (или несколько, уже не помню), а там уже не фантики, а реальные нарушения патентов.
                                                                            –6
                                                                            Да выпилить нафиг Java с телефонов. Она только батарейку жрёт и тормозит. А на некоторых телефонах вообще вызывает сбои.
                                                                              0
                                                                              Ну! И Linux тоже из Android выпилим, ток работать мешает!
                                                                                –1
                                                                                Чем же линукс помешал? Код для мобильных устройств должен быть максимально эффективен, чтобы не загружать процессор бесполезной работой. А Java как раз это делает.
                                                                                Для примера, несколько лет назад пользовался телефонами Siemens. Переход с типового Jimm на java на нативный клиент в виде ELF (то ли на C, то ли на C++ написанного) увеличивало время работы аккумулятора в разы. 26 часов пути из них 6 часов убиения времени в ICQ на вокзале — телефон работал даже по приезду. С Jimm он бы за 4 часа уже сдох. Не говоря уже о том, что Jimm периодически просто валил телефон иногда (да, кривая java в Siemens была).
                                                                                На Symbian S60 не так явно. Но нативные приложения куда лучше костыля по имени java работают. Java тоже быстро высасывает батарею. Я вообще стараюсь не ставить на телефон не Symbian приложения.
                                                                                Надеюсь и в андроидах есть возможность писать нормальные приложения, а не прожорливые java.
                                                                                  +2
                                                                                  если в сименсе была плохая java, это не значит, что java плоха в принципе
                                                                                    –1
                                                                                    У меня в Nokia вполне нормально java сейчас работает. Но нафиг мне эти java-программы нужны.
                                                                                    Ещё раз повторюсь. Java ест слишком много, поэтому ей не место на мобильных устройствах.
                                                                                    Кстати, посмотрите на модели без java обычных телефонов. Их месяц можно с собой носить не заряжая.
                                                                                      +2
                                                                                      >Но нафиг мне эти java-программы нужны.
                                                                                      не нужны — не пользуйтесь, что я могу ещё добавить, но не нужно решать за всех.
                                                                                      программировать на java значительно проще чем на тех же плюсах.

                                                                                      >Их месяц можно с собой носить не заряжая.
                                                                                      неужели вы действительно считаете, что большую часть зарядки батарейки жрёт именно Java/CPU?
                                                                                        0
                                                                                        вы, я так понимаю, являетесь пользователем (даже не разработчиком) сумбиан, и делаете выводы о том как работает ява на андроиде?

                                                                                        смело и умно, че уж тут
                                                                                          0
                                                                                          >Кстати, посмотрите на модели без java обычных телефонов. Их месяц можно с собой носить не заряжая.

                                                                                          И это, разумеется, именно потому, что там Java, а не монохромный экран 160х160 пикселей вместо полноцветного 800х480, отсутствует Wifi/Bluetooth/3G и так далее.
                                                                                          Кстати, посмотрите на китайские калькуляторы на солнечных батареях. Их пять лет можно с собой носить не заряжая (и пофиг, что звонить не умеют).
                                                                                  0
                                                                                  Надесь Google когда-нибудь купят oracle, и положат подобному говну с их стороны конец.

                                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                  Самое читаемое