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

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

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

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

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

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

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

Проект Android с открытым исходным кодом (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.