貢獻者授權協議和標頭

本頁說明兩項重要的貢獻者工作:簽署貢獻者授權協議,以及確保程式碼中的授權標頭使用正確。

簽署貢獻者授權協議

凡是向 Android 開放原始碼計畫 (AOSP) 貢獻構想、程式碼或文件的個人貢獻者 (僅代表自己貢獻),都必須填寫、簽署並提交個人貢獻者授權協議。您可以在線上透過程式碼審查工具執行這項協議。 這份協議定義了將智慧財產權貢獻給 AOSP 的條款。這項授權是為了保護您 (貢獻者) 和專案,不會改變您將自己的貢獻內容用於其他目的的權利。

如果貴公司 (或其他實體) 的員工參與 AOSP 開發,請簽署公司貢獻者授權協議。公司可透過這份協議版本,授權指定員工提交的貢獻內容,並授予著作權和專利授權。

Google 的貢獻者授權協議是以 Apache Software Foundation 使用的協議為基礎,您可以在 Apache 網站上找到這些協議。

加入授權標頭

Android 開放原始碼計畫 (AOSP) 採用幾項開放原始碼計畫核准的開放原始碼授權,用於我們的軟體。

Apache 授權 2.0 版 (Apache 2.0) 是 Android 開放原始碼計畫的偏好授權,而大多數 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 最符合我們的目標。

提交要納入 Android 開放原始碼計畫的程式碼時,請務必正確使用授權標頭。以下各節說明如何處理新檔案和現有程式碼的授權標頭。

請遵循下列著作權和授權標題的最佳做法:

  • 請勿修改現有著作權。舉例來說,如果您想將含有程式碼的檔案貢獻給 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.