Использование свободного или открытого кода при разработке нового программного обеспечения является распространенным, практически повсеместным явлением в современной IT индустрии. Такой код выгоден как разработчикам, так и заказчикам, поскольку значительно экономит время, силы и средства на разработку новых продуктов. При этом, использование свободного или открытого кода имеет свои юридические правила и последствия, которые могут существенно влиять на дальнейшую судьбу софта.Эта статья обязательна к прочтению всеми разработчиками и девелоперами, которые в своей работе используют открытый код, а также потенциальным заказчикам программного обеспечения.
Что такое открытый код (Open Source) с точки зрения права?
Следует сразу отметить, что в данной статье мы будем рассматривать под открытым кодом (Open Source) большую группу свободных (Free Software) и открытых кодов (Open-Source Software) без разделения на отдельные подкатегории, т.к. для целей этой статьи такое разделение несущественно.
Он вам не Open Source / Тайная империя свободного ПО
Любой открытый код доступен для просмотра, изучения использования или изменения, и, как правило, размещается в открытых публичных репозиториях вместе с информацией о возможном применении и условиях использования. Именно условия использования таких кодов представляют наибольший интерес с точки зрения права, поскольку авторы открытого кода не отказываются от своих прав, а предоставляют его другим на условиях открытых лицензий.
Существует большое разнообразие видов лицензий на открытый код, и различия между ними являются очень существенными. Тем не менее, в подавляющем большинстве случаев есть одно крайне важное требование всех лицензиатов – упоминание об использовании этого открытого кода (например, в формате Third Party Software Attribution Notice) и включение в текст конечной лицензии определенных условий.
Далее мы более детально поговорим про эти обязательства, и как правильно организовать работу с открытым кодом, поскольку последствия от невыполнения условий лицензии на открытый софт могут быть не менее серьезны, чем от нарушения условия любой другой лицензии.
Сбор информации про весь открытый код, используемы при разработке ПО
Главным условием, которое позволит вам избежать последующих сложностей при использовании открытого кода, является скрупулёзный сбор информации про весь открытый код, используемый при работе над вашим софтом.Разумеется, реализовать это могут только сами разработчики, поскольку только они знают, какие именно открытые коды были использованы при работе над программным обеспечением. Если вы являетесь заказчиком софта, то в контрактах с разработчиками следует обязательно включать пункт о том, что разработчики должны передать вам информацию о всех открытых кодах, использованных ими в работе. Разумеется, такое обязательство должно сопровождаться описанием ответственности за его нарушение, иначе в нем теряется всякий смысл.
Как правило, такая информация передается в отдельном приложении к договору о разработке, и оформляется в виде таблицы с указанием названия открытого кода, ссылки на репозиторий, из которого такой код взят, и типа лицензии, на основании которой открытый код был размещен его автором.
В чем смысл open source?
Информация о названии лицензии, как и сам текст лицензии, в подавляющем большинстве случаем содержится в том же репозитории в виде текстового файла TXT или в формате Word. Само название файла может быть разным, но, как правило это классические названия Readme или License.
Идентифицировать весь открытый код, использованный в разработке вашего софта – важнейший этап, от которого зависит вся дальнейшая работа с производным кодом, т.е. тем самым софтом, который вы в итоге разработали или получили. Крупные IT компании даже проводят отдельную экспертизу кодов, чтобы убедиться в том, что был указан весь использованный открытый код и ничего не пропущено.
Анализ лицензий на открытый код, использованный при разработке ПО
Ранее мы уже упоминали о том, что существует большие разнообразие лицензий на открытый код, и отличия между ними могут быть довольно существенными. Среди наиболее популярных можно выделить такие типы лицензий как MIT, BSD, Apache 2.0, GNU GPL и т.д. – их очень много.
Не вдаваясь в детали каждой отдельно-взятой лицензии, стоит выделить два основных вида таких лицензий — copyleft-лицензии и permissive-лицензии.
Поскольку большинство программ разрабатываются с целью их дальнейшего использования для получения выгоды, то их заказчикам стоит избегать использования copyleft-лицензий, и вот почему. Сopyleft-лицензии (например, лицензии GPL) предусматривают, что любой производный код (в частности, конечній код вашей программы) должен быть открытым для общественности на условиях GPL-лицензии, и при передаче прав на его использование необходимо прикладывать GPL-лицензию, уведомление об авторском праве и файл с открытым исходным кодом.
Таким образом, используя открытый код на основе copyleft-лицензии вы автоматически теряете возможность получить производный код в свое полное распоряжение и контролировать его последующее коммерческое использование.
Permissive-лицензии позволяют распространять производный код на условиях других лицензий, так что при разработке ПО они пользуются большей популярностью. В тоже время, использование открытого кода по Permissive-лицензии не означает отсутствие дополнительных требований, таких как упоминание ей автора и т.д.
Таким образом, сбор информации и анализ типов лицензий, используемых при разработке вашего софта, стоит проводить всем, кто использует открытый софт в своей работе, и для этого следует привлечь профессиональных юристов, которые смогут дать рекомендации по дальнейшему составлению конечной лицензии и использованию вашего софта.
Источник: vc.ru
Что такое AOSP и почему его часто путают с Android? Разбираемся

Одна из самых сильных и одновременно слабых сторон Android — это широкий выбор вариантов программного обеспечения. Samsung, Huawei, Sony и даже Google предлагают свой собственный взгляд на возможности Android, представляя свои собственные уникальные функции и идеи по улучшению базового программного обеспечения. Все это стало возможным благодаря общей базовой операционной системе, обеспечивающей основные функции. Все известные и любимые вами варианты ОС Android основаны на AOSP — Android Open Source Project.
Telegram-канал создателя Трешбокса про технологии
AOSP — это проект операционной системы с открытым исходным кодом, поддерживаемый Google. Поскольку исходный код открыт, любой желающий может свободно просматривать и вносить код и исправления в репозиторий проекта, хотя Google курирует его общее направление и основную часть разработки. AOSP регулярно обновляется и включает в себя последние исправления ошибок и патчи безопасности для Android. Google также ежегодно представляет основные новые функции ОС на конференции I/O. Android 11 является последней версией, а Android 12 выйдет позже в 2021 году.
Проект с открытым исходным кодом Android не только позволяет сторонним разработчикам вносить изменения, но и может быть использован бесплатно по специальной лицензии. Такие производители, как Amazon и Samsung, могут свободно редактировать проект для своих собственных целей и разработывать свои собственные продукты, такие как Fire OS и Tizen. Это оказалось важным фактором в продолжении разработки Huawei EMUI и Harmony OS после торговых санкций США и потери доступа к приложениям Google.
Также важно отметить, что большинство производителей смартфонов получают версии AOSP от поставщиков SoC (систем на кристалле), например Qualcomm. Это связано с тем, что Android должен быть адаптирован к низкоуровневому оборудованию с помощью драйверов, о которых мы поговорим позже. Исторически это было причиной задержки обновлений Android.
В конечном итоге Google доволен таким положением, поскольку оно побуждает разработчиков использовать Android для широкого спектра гаджетов, подключенных к Интернету. В свою очередь, множество компаний вносят исправления и улучшения в ОС. Это беспроигрышный вариант.
AOSP — сложная многоуровневая структура
Я уверен, что в представлении многих операционные системы — будто сложные живые организмы. AOSP представляет из себя многоуровневую систему и предоставляет множество инструментов как для разработчиков оборудования, так и для разработчиков программного обеспечения.
На «нижних» уровнях производители устройств модифицируют ОС для работы со своим оборудованием. Ядро Linux, например, является основой, которая управляет ресурсами процессора, системной памяти, сети и так далее, чтобы всё работало правильно.
Слои более «высокого» уровня используются разработчиками приложений. Native Libraries (встроенные библиотеки) позволяют разработчикам создавать контент с помощью широко поддерживаемых низкоуровневых библиотек, таких как OpenGL ES, Webkit и других. Кроме того, Android Frameworks предоставляет разработчикам приложений подключаемые модули для общих функций ОС, которые мы все используем каждый день. Они варьируются от данных о местоположении и push-уведомлений до телефонных звонков. Также есть Android Runtime — это посредник, преобразующий код приложения в такой код, который поймёт процессор и прочее оборудование.

В совокупности проект Android Open Source Project представляет собой законченное решение для разработчиков оборудования и программного обеспечения Android.
Однако AOSP — это не просто постоянно растущая кодовая база. Google также предоставляет инструменты для проектирования и разработки в рамках проектов, начиная от документации по совместимости и заканчивая передовыми методами обеспечения безопасности и принципами разработки приложений. Google также предлагает наборы тестов, чтобы помочь разработчикам убедиться, что их устройства правильно реализуют API и функции.
AOSP против Android: это не одно и то же

Android Open Source Project часто путают со стандартным Android, хотя на самом деле AOSP является лишь его основой.
AOSP содержит все, что нужно разработчикам для создания Android, но не включает все необходимое для готового смартфона. Во-первых, Google и AOSP не могут предоставить драйверы ядра для каждой конфигурации оборудования. Под драйвером устройства мы подразумеваем прошивку, необходимую для аппаратного обеспечения телефона, такого как процессор или камеры. Производители смартфонов и систем на кристалле, такие как Qualcomm и Samsung, должны включать эти драйверы в свою сборку Android. Отчасти поэтому обновлениям требуется время.
AOSP также не поставляется с набором приложений Google, таких как браузер Chrome, YouTube и даже Google Play Store. Он также не включает ряд скрытых технологий и API-интерфейсов Google, которые обеспечивают такие функции, как мобильные платежи, голосовые команды и облачное хранилище. Они лицензируются отдельно как Google Mobile Services.
Когда Huawei потеряла доступ к американским технологиям, она больше не могла лицензировать GMS, но могла продолжать использовать AOSP. Таким образом, Huawei начала заменять функции GMS своей собственной Huawei Mobile Services. Однако это означает, что приложения, которые полагаются на GMS, должны быть перестроены с использованием HMS для правильной работы.
Любой производитель, желающий установить GMS поверх Android, должен получить лицензию GMS и Соглашение о распространении мобильных приложений (MADA) для своего устройства, а затем пройти несколько тестов: на совместимость с Android (CTS) для проверки программных и аппаратных компонентов и API, затем наборы тестов Google Mobile Services (GTS) и Vendor (VTS) для тестирования мультимедийных возможностей, ядра ОС и возможностей HAL. Еще одним условием получения лицензии GMS является предварительная загрузка ряда приложений Google на новое устройство.
Различие между AOSP и GMS стало играть большую роль после торгового спора между США и Китаем.
Будущее AOSP: грядёт новая операционная система
Android Open Source Project продолжает оставаться основой успеха Android благодаря бесчисленным часам участия разработчиков со всего мира. Хотя устройства на Android в ближайшее время никуда не денутся, Google уже ищет операционную систему будущего.
Google Fuchsia впервые появилась на GitHub в августе 2016 года, но с тех пор мы мало о ней слышали. Мы все еще мало знаем о Fuchsia и о том, появится ли она для потребителей и когда это произойдет. Похоже, Fuchsia разработана для еще более широкого круга устройств, чем Android. Она также имеет собственное ядро Google, отличное от Linux, под названием Zircon, и поддерживает язык сценариев Google Dart.
На данный момент Fuchsia — это бесплатное программное обеспечение с открытым исходным кодом, как и Android. Будем надеяться, что планы Google на будущее останутся неизменными.
Материалы по теме:
- Антивор, история уведомлений и ещё 7 полезных функций Android, спрятанных глубоко в настройках
- Простой способ отключить TalkBack на Android. И как запретить ему включаться
- Сравниваем эмуляторы Android для ПК: какой производительнее, а какой удобнее
- Как ускорить старый Android: 7 простых и 3 продвинутых способа, которые реально работают
- Идеальный пароль от девушки, который бесполезно подсматривать. Устанавливаем на Android
Источник: trashbox.ru
Что такое AOSP

Исходный код ОС Android находится в свободном доступе, что позволяет разработчикам и компаниям создавать собственные версии прошивки для различных устройств. Для облегчения такого процесса в Google организовали и поддерживают соответствующий проект – AOSP. Какие возможности, преимущества и недостатки такого проекта, вы узнаете из данного материала.
Что такое AOSP
AOSP – сокращение Android Open Source Project, что переводится как проект Android с открытым исходным кодом. Проект представляет собой хранилище с открытым доступом, где содержатся исходные данные и другая информация необходимая для создания пользовательских версий операционной системы Android. А регулярная поддержка со стороны корпорации Google и других участников, способствует внедрению новых функций и возможностей. Цель AOSP в предотвращении монополии или ограничительных действий со стороны других компаний, когда один производитель способен контролировать развитие остальных игроков на рынке. Поэтому AOSP представляет собой полноценную прошивку с настраиваемым исходным кодом, что легко адаптировать под различное устройство: смартфон, планшет, бортовой компьютер автомобиля или другого транспорта.
Где скачать исходные данные
Для AOSP разработан соответствующий ресурс source.android.com. На сайте содержится актуальная информация, свежие файлы, требования, рекомендация и новости. А справочная информация и сборка инструментов облегчит процесс разработки.
Преимущества и недостатки AOSP
Положительная сторона проекта в свободе выбора для производителей электроники и независимых разработчиков. Любой желающий вправе взять исходные файлы и собрать прошивку для различных устройств с наиболее предпочтительным набором приложений и функций. Причем платить отчисления Google не придется.
К такой прошивке легко привязать различный интерфейс, один или несколько магазинов приложений. Недостаток AOSP – невозможность конкурировать с версией Android разрабатываемой Google. Дело в том, что поисковый гигант развивает ту версию Android, что стоит на большинстве продаваемых устройств и неспешно добавляет аналогичные функции в версию AOSP. Противоречивые сервисы Google содержат основную функциональность операционной системы: магазин приложений, синхронизация данных, резервное копирование, обновление системы безопасности и многие мелкие детали, что малозаметны при повседневном использовании прошивки. А при соблюдении определенных договоренностей, производители получают денежное вознаграждение за счет рекламы.

Как бы некоторые пользователи не возмущались по поводу высокой нагрузки на систему со стороны Google сервисов, без GAPPS такая прошивка никому не интересна, поскольку в ней ничего нет. Ещё и не каждый крупный производитель способен создать, развивать и поддерживать магазин приложений, способный конкурировать с Google Play. Поэтому большинство разработчиков выпускают кастомные прошивки на основе AOSP, внедряют дополнительные функции, а в публикациях отдельно прилагают Google сервисы для самостоятельной установки. Благодаря этому удается избежать ответных мер со стороны поискового гиганта.
Значимость и будущее AOSP
В 2014 году доля AOSP прошивок на рынке составляла 20%. Впечатляющая цифра достигалась преимущественно за счет китайских и индийских разработчиков, что собирали прошивки для доступных мобильных устройств. На такую меру приходилось идти для экономии на сертификации в лаборатории Google.
Да и стандартная версия прошивки с трудом работала на 1-2 ядерных платформах с 256 или 512 МБ оперативной памяти. Из-за чего требовалась максимально облегченная прошивка. В Google быстро поняли, что потенциальная прибыль с рекламы идет мимо кассы. Поэтому для снижения доли AOSP прошивок пришлось ввести некоторые ограничения для сторонних прошивок.
А ещё оперативно разработать облегченную версию Android Go для маломощных устройств. Благодаря активным действиям долю устройств на AOSP удалось сократить. Впрочем, значимость AOSP вскоре может увеличиться. Компания Huawei находясь под санкциями со стороны США, лишена возможности использовать Android с сервисами Google.
Поэтому единственный способ развивать рынок мобильных устройств – использовать переработанную прошивку на AOSP, а так же развивать собственные приложения и сервисы. Для Google такой сценарий неприемлем, так как другие компании могут повторить опыт китайского производителя. В лучшем случае у Google появится сильный соперник.
Вывод
В статье подробно описано, что такое AOSP, каковы возможности, преимущества и недостатки прошивки с исходным кодом. Для разработчиков и энтузиастов прошивка позволяет поэкспериментировать, а ещё создать уникальный образ или реализовать интересные функции и возможности.
При этом проект AOSP ориентирован только на ограниченную аудиторию и без отсутствия должной поддержки не подходит для регуляторного использования. Кроме того без сервисов Google такая прошивка проигрывает по всем параметрам. Возможно ситуация изменится в следующем году, если в Huawei закончат разрабатывать собственную прошивку на AOSP. У компании имеется определенный запас прочности и поддержка китайского правительства для развития аналогичной Google экосистемы. При этом не исключено, что американская компания начнет всячески вставлять «палки в колесо» Huawei и не допустить потерю финансов на рекламе.
А вы пользовались прошивками на AOSP? Оставляйте комментарии с мыслями и отзывами касательно прошивок с исходным кодом.
Источник: androfon.ru
