Esta página aborda duas importantes tarefas do colaborador: assinar contratos de licença e garantir o uso correto dos cabeçalhos de licenciamento no seu código.
Assinar contratos de licença de colaborador
Todos os colaboradores individuais (que fazem contribuições apenas no próprio nome) de ideias, códigos ou documentação no Android Open Source Project (AOSP) precisam preencher, assinar e enviar um Contrato de licença de colaborador individual. Esse contrato pode ser firmado on-line na ferramenta de revisão de código. Ele define os termos da propriedade intelectual da contribuição no AOSP. Essa licença existe para sua proteção como colaborador, bem como para a proteção do projeto. Ela não muda seus direitos de usar suas contribuições para qualquer outra finalidade.
O Contrato de licença de colaboração corporativa está disponível para empresas (ou outras entidades) que tenham funcionários trabalhando no AOSP. Essa versão do contrato permite que a empresa autorize contribuições enviadas por funcionários designados e conceda licenças de patente e direitos autorais.
Os contratos de licença de contribuição do Google são baseados nos contratos usados pela Apache Software Foundation, que podem ser encontrados no site da Apache.
Incluir cabeçalhos de licença
O Android Open Source Project (AOSP) usa algumas licenças de código aberto aprovadas pela iniciativa de código aberto (link em inglês) no nosso software.
A Licença Apache Versão 2.0 (Apache 2.0) é a licença preferencial para o AOSP. Além disso, a maior parte dos softwares Android é licenciada com a Apache 2.0. Ainda assim, há exceções que são tratadas individualmente. Por exemplo, os patches do kernel do Linux são administrados pela licença GPLv2 com exceções do sistema, que podem ser encontradas em The Linux Kernel Archives.
Para o software de espaço do usuário (não kernel), é preferível usar a Apache 2.0 (e licenças semelhantes, como BSD e MIT) em vez de outras licenças, como a GNU Lesser General Public License (LGPL). Confira os motivos:
O Android representa liberdade e escolha. O objetivo do Android é promover transparência no mundo dos dispositivos móveis, e o Google não pode prever ou ditar todos os usos do nosso software. Encorajamos a criação de dispositivos abertos e modificáveis, mas não acreditamos que seja nosso papel impor isso. O uso de bibliotecas LGPL pode ser limitante. Estas são algumas das nossas preocupações específicas:
Em termos simplificados, a LGPL requer o envio da origem para o aplicativo, uma oferta por escrito para a origem ou a vinculação dinâmica da biblioteca LGPL, que permite que os usuários façam upgrade ou substituam a biblioteca manualmente. Como o software Android geralmente é enviado na forma de uma imagem estática do sistema, cumprir esses requisitos restringe os designs dos fabricantes de dispositivos. Por exemplo, é difícil para um usuário substituir uma biblioteca em um armazenamento flash somente leitura.
A LGPL requer permissão de modificação do cliente e engenharia reversa para depurar essas modificações. A maioria dos fabricantes de dispositivos não quer se submeter a esses termos.
Historicamente, as bibliotecas LGPL são fonte de muitos problemas de compliance para fabricantes de dispositivos downstream e desenvolvedores de apps. Preparar e capacitar engenheiros para resolver essas questões é difícil e leva tempo. É fundamental para o sucesso do Android que os fabricantes de dispositivos possam obedecer aos requisitos das licenças com facilidade.
Essas preocupações não são críticas à LGPL ou a outras licenças. O Google é grato por todas as licenças livres e de código aberto e respeita a preferência por outras, mas decidiu que a Apache 2.0 é a melhor opção para nosso objetivo.
Ao enviar o código que vai ser incluído no AOSP, é preciso garantir o uso adequado dos cabeçalhos de licença. As seções a seguir explicam como processar os cabeçalhos de licença para novos arquivos e códigos existentes.
Seguir as práticas recomendadas de licença e direitos autorais
Siga estas práticas recomendadas de direitos autorais e cabeçalho de licença:
Não modifique um direito autoral existente. Por exemplo, se você quiser contribuir com um arquivo para o AOSP que contenha código originado em um arquivo com seu próprio aviso de direitos autorais, é preciso manter o aviso do arquivo original.
Se você adicionar um arquivo de origem totalmente novo, use o direito autoral padrão do AOSP e o seguinte cabeçalho de licença, a menos que o projeto para o qual você está contribuindo tenha uma licença predefinida diferente:
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.