라이선스

Android 오픈소스 프로젝트(AOSP)에서는 오픈소스 이니셔티브 승인을 받은 오픈소스 라이선스 몇 가지를 Google 소프트웨어에 사용합니다.

AOSP 라이선스

Apache 라이선스 버전 2.0(Apache 2.0)은 AOSP의 기본 라이선스이며, 대부분의 Android 소프트웨어에는 Apache 2.0 라이선스가 부여됩니다. 본 프로젝트를 진행하면서 기본 라이선스를 준수하기 위해 노력하겠지만, 사례별로 처리되는 예외가 있을 수 있습니다. 예를 들어 Linux 커널 패치에는 kernel.org에서 확인할 수 있는 시스템 예외가 포함된 GPLv2 라이선스가 적용됩니다.

기여자 라이선스 계약

AOSP에 아이디어, 코드 또는 문서를 기여하는 모든 개인 기여자(본인만을 대표하여 기여하는 사람)는 개인 기여자 라이선스 계약을 작성하고 서명한 다음 제출해야 합니다. 코드 검토 도구를 통해 온라인으로 계약을 체결할 수 있습니다. 이 계약은 AOSP에 지적 재산을 기여하는 조건을 명확하게 정의합니다. 이 라이선스는 프로젝트 및 기여자의 보호를 위한 것이며 기여자가 자신의 기여물을 다른 목적으로 사용할 권리에 영향을 주지 않습니다.

직원이 AOSP에 참여하는 기업(또는 기타 법인)은 기업 기여자 라이선스 계약을 사용할 수 있습니다. 이 계약 버전을 통해 기업은 지정된 직원이 제출하는 기여를 승인하고 저작권 및 특허 라이선스를 부여할 수 있습니다.

Google의 계약은 Apache Software Foundation에서 사용하는 계약을 기반으로 하며, 그 내용은 Apache 웹사이트에서 확인할 수 있습니다.

Apache 소프트웨어 라이선스를 사용해야 하는 이유

커널이 아닌 사용자 공간 소프트웨어의 경우 Google에서는 약소 일반 공중 라이선스(LGPL)와 같은 다른 라이선스보다 Apache 2.0 및 이와 유사한 BSD, MIT와 같은 라이선스를 선호합니다. 이유는 다음과 같습니다.

Android는 자유와 선택을 중시합니다. Android의 목적은 모바일 환경의 개방성을 촉진하는 것이며 Google에서는 Google 소프트웨어의 모든 사용을 예측하거나 지시할 수는 없습니다. 따라서 개방형 기기와 수정 가능한 기기를 모두 권장하고 있지만, 두 종류의 기기를 만들도록 강제하는 일은 Google의 몫이 아니라고 생각합니다. LGPL 라이브러리의 사용은 제한적일 수 있습니다. 이에 관한 몇 가지 구체적인 문제는 다음과 같습니다.

  • 간단히 말해 LGPL을 사용하려면 애플리케이션에 소스를 제공하거나, 서면 형태로 소스를 제공하거나, LGPL이 적용되는 라이브러리를 동적으로 연결하고 사용자가 라이브러리를 직접 업그레이드하거나 교체할 수 있어야 합니다. 일반적으로 Android 소프트웨어는 정적 시스템 이미지로 제공되므로 이러한 요구사항을 준수하면 기기 제조업체가 설계상의 제약을 받습니다. 예를 들어 사용자가 읽기 전용 플래시 저장소의 라이브러리를 교체하기는 어렵습니다.
  • LGPL은 고객 수정 및 이러한 수정사항을 디버깅하기 위한 리버스 엔지니어링을 허용하도록 요구합니다. 대부분의 기기 제조업체는 이러한 조건에 구속되기를 원하지 않습니다.
  • 이전부터 다운스트림 기기 제조업체와 애플리케이션 개발자 입장에서 LGPL 라이브러리는 많은 규정 준수 문제의 근원이었습니다. 엔지니어에게 이러한 문제를 교육하는 일은 어려우며 시간이 많이 소요됩니다. Android의 성공을 위해서는 기기 제조업체가 쉽게 라이선스를 준수할 수 있어야 합니다.

위에 설명된 문제가 Google 코드에 Apache 2.0을 선호하는 이유입니다. LGPL 또는 기타 라이선스를 비판하려는 의도는 아니며, Google에서는 모든 무료 및 오픈소스 라이선스를 환영하고 타인의 라이선스 선호도를 존중합니다. 다만 Apache 2.0이 Google의 목표에 부합한다고 판단했을 뿐입니다.