Помните фразу Пабло Пикассо: "Хорошие художники копируют, великие - воруют". эта фраза не раз повторяется в фильме "Пираты Кремниевой Долины", в котором говорится о том как Apple украла идею системы у Xerox, а Microsoft - у Apple. А вы знали, что у Google тоже рыло в пуху? Речь об 11,5 тысячах строчек кода, украденных у Oracle. Но на деле речь идет о всего 9 почти идентичных... Множество судов и разбирательств и все на самом деле из-за Android и Java... Посмотрите наше расследование!
С вами на связи Борис Веденский, Валерий Истишев и Митя Иванов! Обзоры смартфонов, репортажи с выставок, новости из мира технологий и многое другое на самом популярном в Рунете канале о гаджетах Droider.Ru!
[музыка]
а вы знали что у Android достаточно
Интересная история изначально OS
разрабатывалась для цифровых камер затем
её начали позиционировать как систему
для кнопочных телефонов и только потом
её переделали под привычный формат
сенсорных смартфонов Но не все знают что
в истории Android есть большое Тёмное
пятно на самом деле система была
украдена по крайней мере так утверждает
компания Oracle в 2021 году суд решил
конфликт между Oracle и Google который
длился более 10 лет несмотря на
обвинение в том что Google украла более
11.000 строк кода для использования в
Android решение было вынесено в пользу
Вика как же корпорации удалось
скопировать собственность Oracle и выйти
сухой из воды зачем это было сделано и
главное Почему Google не смогла сама
написать код для андроидам ролике
ответим на все эти вопросы Мы детально
изучили материалы суда и даже код и
нашли там много интересных деталей это
дройдер с вами Борис Веденский будет
интересно погнали
[музыка]
с чего же всё началось сперва вспомним
что за компания вообще такая Oracle Она
известна разработкой программ для
корпоративного сектора ещё с семидесятых
годов например среди таких программ есть
система управления базами данных так вот
в апреле 2009 года Oracle купила другую
Корпорацию для корпорации Sun
microsystems и тут становится интересно
чем же их заинтересовала са Кроме того
что эта компания занималась разработкой
и производством ного железа в послужном
списке Sun microsystems находилось ещё
кое-что большие программные решения
самое интересное и значительные из них
язык разработки Java который сейчас
находится на третьем месте по
популярности Вы наверняка слышали Это
слово соответственно так язык Java тоже
стал собственностью Oracle туда же можно
включить и средство разработки на Java
компилятор библиотеки и Java Virtual
Маши Так вот самое важное в этой истории
то что оказывается именно Java активно
используется в Android с первых лет
существования компания выбрала этот язык
просто потому что он очень популярен
относительно прост для программистов и
приложение на нём легко переносится на
другие устройства уже заметно позже
Google выпустил для разработчиков свой
инструмент а Android ndk который
позволяет писать под мобильную OS на
других языках например c c+ plus Однако
большинство приложений под зелёного
робота создано именно на Java А значит
внутри самой OS находится множество
механизмов для их запуска кстати в одном
из наших роликов Мы уже рассказывали Как
именно работают приложения в Android
посмотрите это правда интересно но
напомню Как же это устроено если коротко
то программы написанные на языке Java
сначала транслируются в байт-код на
компьютере разработчика а затем уже файл
с этим байт кодом запускается на самом
смартфоне выполняет его специальная
виртуальная машина dalvik для первых
версий
Андроидах тот же самый принцип работает
и для java приложений под другие
устройства и системы не только для
андроидам виртуальная машина называется
jvm та самая Java Virtual Machine Но
зачем Google понадобилась именно своя
виртуальная машина здесь-то и кроется
одна из причин почему Oracle подали
суд для разработчиков на Java доступно
несколько инструментов для создания
приложений Они же Java development Kit
это такой набор программ с в помощи
которого вы делаете свою программу на
языке Java в него к примеру входит
компилятор библиотеки Java Virtual
Machine но нам интересны только две
разновидности этого инструмента jdk
standart Edition SE и Micro Edition Mi
первая Создано для программ которые
будут запускаться на обычных компьютерах
а вторая предназначена для приложений
под компактные устройства так как у них
значительно меньше ресурсов чем у
десктопов и такая вещь оптимизирована
что ещё важно обе версии обладают так
называемой лицензий gnu gpl Не пугайтесь
это такая открытая лицензия которая
означает что исходники программ открыты
и доступны для изменения Но такую
программу нельзя включить в состав
закрытого по так вот между standart
Edition и Micro Edition Есть ещё одно
важное но существенное отличие первую
можно использовать для софта с Любой
лицензией не только с открытой А вот для
micro Edition такого исключения нет с
ней можно выпускать только открытый код
И теперь мы подходим к важному моменту
Google использовала именно мобильную
Micro Edition её ещё называют Phone in
что логично учитывая целевые устройства
для Android Однако разработчики хотели
чтобы производители устройств могли
использовать открытый проект Android
вместе с проприетарный софтом то есть
закрытым например это может быть
кастомный интерфейс или другие
компоненты системы Ну мы сейчас во всех
смартфонах это видим то есть Google
нужна была возможность сделать закрытый
софт из библиотек которые таким
разрешением не обладают и поэтому Google
пришлось переделать те элементы Java
development Kit которые распространялись
Под этой неудобной лицензией и
разработчики позаимствовали подход у
авторов синтаксис библиотек идея
виртуальной машины позаимствовали но не
скопировали полностью что-то они
написали сами а что-то взяли из другой
реализации Java но с удобным
лицензированием Именно поэтому у Google
свой компилятор Java кода в bcde а также
собственная виртуальная машина о которой
мы уже говорили для запуска приложений
сперва Это был Дак а потом Ар помните то
есть ещё раз Google нужно было
использовать инструменты Java в Андроиде
но у некоторых из них лицензия не
позволяла это сделать поэтому Google
просто написали свой аналог для
некоторых частей получился такой
Франкенштейн от Oracle и
[аплодисменты]
Google и всё бы ничего но к 201 году
Android стремительно набирал
популярность на рынке и уже навязывали
борьбу в нише с фонов разумеется это не
могло пройти мимо GL Oracle особенно
когда та проиграла гонку смартфонов
безуспешно пытаясь создать устройство на
своей JAVA да было и такое взгляните
сами на слайд на презентации Google три
проекта Sun microsystems и все неудач
как следствие в 2010 году корпорация
развязала против Google суд затянувшийся
на десятилетие но многие уже задались
вопросом а в чём конкретно Oracle
обвиняла создателей Android Ну смотрите
первоначальный причиной для суда стала
кража структуры и организации 37 Java AP
а также нарушение патентов командой
Android особой акцент Oracle сделала на
полном копировании девяти строк кода для
функции Range Check которая является
частью файла aace Java по словам Oracle
в общей сумме Google скопировала
11.500 строк кода За что отвечает эта
функция Range Check чем так важны эти
Java AP и откуда так много украденного
кода Давайте подробно разберём м каждую
претензию Oracle Но прежде Не забудьте
нажать лайк колокольчик и подписку за
усердие и большое количество
перелопатила
[музыка]
Google обвинение в нарушении семи
патентов Вот они не будем углубляться в
каждый из них а остановимся лишь на
самых примечательных в первом патенте
способ выполнения статической лизации
Oracle описывает способ экономии
системных ресурсов при создании
статического массива данных Делается это
очень просто определённая часть
программы не запускается по-настоящему
её выполнение лишь имитируется в
результате виртуальной машине приходится
выполнять меньше работы и ресурсов тоже
требуется меньше Oracle утверждала что в
актуальной на тот момент машине dalvik
применён тот же подход или другой патент
Методика и реализация способа
определения ссылок на данные в
сгенерированного коде он описывает ещё
один из механизмов работы виртуальной
машины Java той самой которую Google
реализовала для Android самостоятельно
впрочем Это не единственный случай когда
даже к заново написанному коду могут
возникнуть претензии помните число в
11.500 строк скопированного кода большая
часть из них относятся к тридцати семи
библиотекам Java AP Вот они эти AP
позволяют общаться с уже готовыми
функциями упрощая работу разработчиков и
по сути они обеспечивают всю базовую
функциональность языка например
библиотека Java util нужна чтобы сделать
такую простую вещь как создание списка с
данными так вот Oracle утверждает что
Google разработала Android без лицензии
и попросту скопировала некоторые
библиотеки по словам обвинителей Пускай
Даже эти 37 AP разработанных в Google их
структура последовательность и
организация настолько схожи с
собственностью Oracle что нарушают
авторские права А что за девять строчек
кода которые были упомянуты ранее мы
заглянули в исходники Андройда благо они
доступны любому желающему и нашли тамм
Ту самую функцию Range Check смотрите
вот код прямиком из базы Android
запомнили А вот так выглядит код из
репозитория Java Похоже да здесь чуть
больше чем девять строчек кода Но если
убрать некоторые фигурные кавычки
которые не влияют на работу то всё
встаёт на свои места вот те самые
заветные девять линий Но что же делает
эта бесценная Функция которую пришлось
скопировать практически посимвольно всё
что она делает это проверяет находится
ли нужный элемент в преде делах массива
делается это ради того чтобы избежать
ошибок при операциях в программе И хотя
массивы - это базовая вещь в любом языке
программирования и для создания подобной
функции не требуется много времени и
усилий Oracle не понравилось полное
совпадение кода на одном из этапов суда
адвокат Oracle заявил что Google
скопировала части библиотек Java и
связанный с ним код ради того чтобы
упростить себе работу за счёт Oracle Вот
его прямая цитата кража
11.500 строк кода неоспоримо Google
взяли код скопировали его и поместили
прямо в
Android Но одно дело обвинение а другое
решение суда первая фаза процесса
коснулась патентов структуры и
организации библиотек а также о восьми
текстовых файлов и функции Range Check
той самой вернёмся к тем двум патентам в
ответ на обвинение по первому Google
подробно рассказала что их виртуальная
машина Дави использует для оптимизации
распо
шаблонов а не имитацию выполнения байт
кода описанную в патенте то есть по сути
используется другой подход что касается
второго патента то там команда Android
заявила что их реализация не содержит
символических ссылок как итог присяжные
решили что Google не нарушал никаких
патентов чего нельзя сказать про Java AP
среди 168 AP находившихся на тот момент
в Android 37 были незаконно
позаимствован Oracle в общей сумме это
более 600 классов и более 6.000 методов
то есть маленьких подпрограмм обвинитель
заявил что команда Android буквально
скопировала строки кода из оригинальных
библиотек Java AP и не буквально
воспроизведя методы порядок файлов
функции Что это значит под буквальный
копированием подразумевается дословное
копирование оригинального произведения а
не буквальное означает повторение идеи
но в изменённой форме в ходе суда
Выяснилось что буквально скопированный
код - это строки задающие названия и
некоторые параметры методов и классов то
есть сама реализация отличается схожую
структуру Google объясняет тем что
разработчикам приложений будет удобнее
использовать те же самые методы что и в
привычной Java Ну логика в этом есть
конечно и вот тут присяжные пришли к
выводу что Google всё же нарушил
авторские права в отношении ТД семи
библиотек Java что касается функции
Range Check то даже судья на первом
этапе суда отметил что подобный код
может написать Любой кто хоть немного
знаком с программированием но всё же как
вышло что Range Check оказалась дословно
скопированной Дело в том что ти самые
девять строк для Android написал
разработчик джошу Blog в 2007 году
оказывается что до Google он работал сам
microsystems там он и написал
оригинальные строчки кода ещё В
девяносто седьмом году То есть
программист вы создал свой же код в
составе другого проекта что мы имеем В
итоге в мае 2012 года присяжные решили
что Google таки нарушила авторские права
Oracle на 37 пакетов Java IP и Дестро
кода из функции Range Check А вот
патенты не считаются незаконно
скопированные Да и восемь обнаруженных
файлов в исходника использовались только
для тестов и не попали в итоговую сборку
Android к ниму сюда Вопросов нет но это
был не конец истории Окончательный
вердикт оказался неожиданным к июню того
же года судья решил что Google
использовал 37 пакетов Java IP абсолютно
легально поскольку названия переменных
методов или классов а также сами AP не
могут быть объектами авторского права
тем не менее функция Range Check и
восемь декомпилировать
нарушенными Однако обе и стороны
остались недовольны и подали апелляции
первоначальное решение отменили а Java
AP признали интеллектуальной
собственностью Oracle в ответ Google
сменила тактику защиты адвокаты
настаивали на том что лицензия не нужна
если AP повторяются ради совместимости
софта и действительно в мае
шестнадцатого года суд решил что Android
не нарушает авторских прав ведь
реализация трид се IP пакетов jav
попадает под понятие добросовестного
использования в конце шестнадцатого года
недовольная уже вторым поражением Oracle
начала повторный процесс он сравнял счёт
обеих сторон оказалось что использование
командой Android AP пакетов всё-таки не
соответствовало принципам
добросовестного использования
переделанные библиотеки использовались
для тех же целей что и оригинальные при
этом не было даже минорных изменений суд
вынес что из 11500 скопированный строк
Google нужно было было только 170 строк
В конечном итоге переиспользование Java
AP компании Google признали коммерческим
несмотря на открытость Android в общем в
течение Почти 10 лет решения менялись то
в одну то в другую сторону и тяжба шла
долго и вот мы находимся в финальной
точке этой истории в девятнадцатом году
Google попыталась оспорить решение и
папе закончилась после нескольких лет
разбирательств в апреля 2021 года
глубокий анализ а доказал что такие
библиотеки являются не столько
реализации каких-то методов сколько
кодов для их объявления и организации
иными словами они отвечают за то чтобы
другие программы под Android знали о том
что тот или иной метод вообще существует
более того Google не просто скопировала
пакеты под свои цели корпорация
преобразовалась совершенно новую
платформу для смартфонов которая
способствовала развитию вообще всей
индустрии Ну типа за грамотность двойка
а затем сочинение пять копирование в
этой ситуации имело место быть Однако
как заявил судья команда Android
позаимствовала только самые необходимые
вещи а количество неоригинального кода
по отношению к остальным исходника
настолько минимально что не превышает
половины процента суд посчитал такой
объём незначительным А причины
основательные и весь этот набор
аргументов приводит нас к развязке все
решения Google связанные с Java AP
подходят под принципы добросовестного
использования и Не нарушают авторские
права
[музыка]
В итоге в ходе суда Выяснилось что
Google и правда использовала чужие
ресурсы при разработки Android Однако
всё не так очевидно несколько
декомпилировать
до финальных сборок osos и
использовались лишь для теста это
во-первых девяти срочная функция Range
Check была дословно скопирована её же
автором это во-вторых а самая Спорная
часть суда 37 пакетов Java IP в
исходника Android и правда повторяла
реализацию Oracle но во-первых во-первых
лишь частично А во-вторых это было
необходимо чтобы разработчики на jav
могли создавать приложение привычным и
удобным путём поэтому такое
использование пакетов признали
добросовестным Остаётся только один
вопрос что же сподвигло Oracle начать
столь затяжной суд точного ответа нет но
есть интересный факт создатель Java
Джеймс Гослинг ещё в начале суда отметил
что подобный шаг со стороны Oracle не
вызывает удивления на момент поглощения
у Sun были напряжённые отношения с
Google юристы Oracle сразу обратили
внимание на это как только Sun
microsystems стала собственностью
корпорации и если этого недостаточно
Чтобы объяснить действия Oracle то есть
кое-что ещё со слов адвоката Google
Роберта Ван неста глава Oracle сменил
своё отношение к Android на негативное
после того как его компания провалила
все попытки сделать смартфон с помощью
Java Живите с этим на этом сегодня всё
спасибо что посмотрели Мне кажется было
интересно разобраться действительно в
истоках самой популярной в мире
мобильной операционки и спасибо что
посмотрели Меня зовут Борис Веденский
это дройдер увидимся в других роликах
подписывайте жмите колокольчик и лайк
чтобы их не пропустить пока