Halaman ini membahas dua tugas kontributor penting: menandatangani perjanjian lisensi kontributor dan memastikan penggunaan header pemberian lisensi yang benar dalam kode Anda.
Menandatangani perjanjian lisensi kontributor
Semua kontributor perorangan (yang memberikan kontribusi hanya atas namanya sendiri) ide, kode, atau dokumentasi ke Android Open Source Project (AOSP) diperlukan untuk melengkapi, menandatangani, dan mengirimkan Perjanjian Lisensi Kontributor Perorangan. Anda dapat menjalankan perjanjian ini secara online melalui alat peninjauan kode. Perjanjian ini menentukan istilah untuk mengontribusikan kekayaan intelektual ke AOSP. Lisensi ini ditujukan untuk perlindungan Anda sebagai kontributor serta perlindungan project. Lisensi ini tidak mengubah hak Anda untuk menggunakan kontribusi Anda sendiri untuk tujuan lain.
Perjanjian Lisensi Kontributor Perusahaan tersedia untuk perusahaan (atau entitas lain) dengan karyawan yang menangani AOSP. Versi perjanjian ini memungkinkan perusahaan mengotorisasi kontribusi yang dikirimkan oleh karyawan yang ditunjuk dan memberikan lisensi hak cipta dan paten.
Google mendasarkan perjanjian lisensi kontributornya pada perjanjian yang digunakan oleh Apache Software Foundation, yang dapat ditemukan di situs Apache.
Menyertakan header lisensi
Android Open Source Project (AOSP) menggunakan beberapa lisensi open source yang disetujui oleh inisiatif open source untuk software kami.
Apache License, Versi 2.0 (Apache 2.0) adalah lisensi pilihan untuk AOSP, dan sebagian besar software Android dilisensikan dengan Apache 2.0. Meskipun project tersebut berusaha untuk mematuhi lisensi pilihan, ada pengecualian, yang ditangani secara kasus per kasus. Misalnya, patch kernel Linux berada di bawah lisensi GPLv2 dengan pengecualian sistem, yang dapat ditemukan di The Linux Kernel Archives.
Untuk software ruang pengguna (non-kernel), Google lebih memilih Apache 2.0 (dan lisensi yang serupa seperti BSD dan MIT) daripada lisensi lain seperti GNU Lesser General Public License (LGPL). Berikut alasannya:
Android adalah tentang kebebasan dan pilihan. Tujuan Android adalah untuk mempromosikan keterbukaan di dunia seluler, dan Google tidak dapat memprediksi atau menentukan semua penggunaan untuk software kami. Jadi, meskipun Google mendorong semua orang untuk membuat perangkat yang terbuka dan dapat diubah, kami tidak merasa berhak memaksa mereka untuk melakukannya. Menggunakan library LGPL dapat bersifat membatasi. Berikut adalah beberapa masalah spesifik kami:
Dalam istilah yang disederhanakan, LGPL memerlukan pengiriman sumber ke aplikasi; penawaran tertulis untuk sumber; atau menautkan library dengan LGPL secara dinamis dan mengizinkan pengguna mengupgrade atau mengganti library secara manual. Software Android biasanya dikirimkan sebagai image sistem statis. Jadi, mematuhi persyaratan ini akan membatasi desain produsen perangkat. Misalnya, pengguna akan kesulitan mengganti library di penyimpanan flash hanya baca.
LGPL mewajibkan izin modifikasi dari pelanggan dan rekayasa balik untuk proses debug modifikasi tersebut. Sebagian besar pembuat perangkat tidak ingin terikat dengan persyaratan ini.
Secara historis, library LGPL telah menjadi sumber banyak masalah kepatuhan bagi pembuat perangkat dan developer aplikasi downstream. Mengedukasi para engineer tentang masalah ini sulit dan memakan waktu. Demi kesuksesan Android, produsen perangkat dapat dengan mudah mematuhi lisensinya.
Masalah ini bukan kritik terhadap LGPL atau lisensi lainnya. Google menghargai semua lisensi gratis dan open source, serta menghormati preferensi lisensi orang lain. Google telah memutuskan bahwa Apache 2.0 adalah yang paling sesuai dengan sasaran kami.
Saat mengirimkan kode untuk disertakan dalam AOSP, Anda harus memastikan penggunaan header lisensi yang tepat. Bagian berikut menjelaskan cara menangani header lisensi untuk file baru dan kode yang sudah ada.
Mengikuti praktik terbaik lisensi dan hak cipta
Ikuti praktik terbaik berikut untuk header hak cipta dan lisensi:
Jangan mengubah hak cipta yang ada. Misalnya, jika Anda ingin berkontribusi file ke AOSP yang berisi kode yang berasal dari file dengan pemberitahuan hak ciptanya sendiri, Anda harus mempertahankan pemberitahuan hak cipta tersebut dari file asli.
Jika Anda menambahkan file sumber yang sepenuhnya baru, gunakan hak cipta AOSP default dan header lisensi berikut, kecuali jika project yang Anda kontribusikan memiliki lisensi standar yang berbeda:
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.