Лицензионные соглашения и заголовки для участников

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

Подписывайте лицензионные соглашения для участников.

Все индивидуальные участники (те, кто вносит вклад только от своего имени), предоставляющие идеи, код или документацию для проекта Android Open Source Project (AOSP), обязаны заполнить, подписать и отправить Лицензионное соглашение для индивидуальных участников . Вы можете подписать это соглашение онлайн через инструмент проверки кода . Соглашение определяет условия предоставления интеллектуальной собственности для AOSP. Эта лицензия предназначена для вашей защиты как участника, а также для защиты проекта; она не изменяет ваши права на использование ваших собственных разработок в любых других целях.

Соглашение о лицензировании для корпоративных участников доступно для корпораций (или других организаций), сотрудники которых работают над AOSP. Эта версия соглашения позволяет корпорации разрешать внесение вклада, осуществляемое назначенными ею сотрудниками, и предоставлять лицензии на авторские права и патенты.

В своих лицензионных соглашениях для участников Google использует соглашения, аналогичные тем, что применяются фондом Apache Software Foundation , с которыми можно ознакомиться на веб-сайте Apache .

Включить заголовки лицензий

В рамках проекта Android Open Source Project (AOSP) для нашего программного обеспечения используются несколько лицензий с открытым исходным кодом, одобренных инициативами в этой области.

Лицензия Apache версии 2.0 (Apache 2.0) является предпочтительной лицензией для AOSP, и большая часть программного обеспечения Android распространяется под лицензией Apache 2.0. Хотя проект стремится придерживаться предпочтительной лицензии, существуют исключения, которые рассматриваются в каждом конкретном случае. Например, патчи ядра Linux распространяются под лицензией GPLv2 с системными исключениями, которые можно найти в архиве ядра Linux .

Что касается программного обеспечения пользовательского пространства (не ядра), Google предпочитает лицензии Apache 2.0 (и аналогичные, такие как BSD и MIT) другим лицензиям, например, GNU Lesser General Public License (LGPL). Вот почему:

  • Android — это свобода и выбор. Цель Android — способствовать открытости в мире мобильных устройств, и Google не может предсказать или диктовать все способы использования нашего программного обеспечения. Поэтому, хотя Google и призывает всех создавать открытые и модифицируемые устройства, мы не считаем своим долгом заставлять их это делать. Использование библиотек под лицензией LGPL может быть ограничительным. Вот некоторые из наших конкретных опасений:

    • Проще говоря, лицензия LGPL требует предоставления исходного кода приложению; письменного предложения об использовании исходного кода; или динамической привязки библиотеки, распространяемой по лицензии LGPL, и предоставления пользователям возможности вручную обновлять или заменять библиотеку. Программное обеспечение Android обычно поставляется в виде статического образа системы, поэтому соблюдение этих требований ограничивает возможности производителей устройств в разработке. Например, пользователю сложно заменить библиотеку на флэш-накопителе только для чтения.

    • Лицензия LGPL требует разрешения на внесение изменений заказчиком и обратное проектирование для отладки этих изменений. Большинство производителей устройств не хотят быть связанными этими условиями.

    • Исторически сложилось так, что библиотеки, распространяемые по лицензии LGPL, являлись источником многочисленных проблем с соблюдением требований для производителей устройств и разработчиков приложений. Обучение инженеров этим вопросам — сложная и трудоемкая задача. Для успеха Android крайне важно, чтобы производители устройств могли легко соблюдать условия лицензий.

Эти опасения не являются критикой LGPL или других лицензий. Google ценит все свободные и открытые лицензии и уважает предпочтения других в отношении лицензий. Google решил, что Apache 2.0 наилучшим образом соответствует нашим целям.

При отправке кода для включения в AOSP необходимо обеспечить правильное использование заголовков лицензий. В следующих разделах объясняется, как обрабатывать заголовки лицензий для новых файлов и существующего кода.

Следуйте этим рекомендациям по оформлению заголовка, содержащего информацию об авторских правах и лицензии:

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

  • Если вы добавляете совершенно новый исходный файл, используйте стандартные авторские права AOSP и следующий заголовок лицензии, если только в проекте, в который вы вносите свой вклад, нет другой предопределенной лицензии:

    Copyright (C) yyyy The Android Open Source Project
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.