Proses Rilis Gambar Kernel Generik (GKI).

Dokumen ini menjelaskan cara GKI dirilis, termasuk rilis darurat mingguan, bulanan, dan di luar band. Tujuan dari dokumen ini adalah untuk memberikan panduan kepada OEM mengenai lokasi pengambilan GKI serta proses perbaikan darurat di luar jalur. OEM juga dapat menggunakan panduan Pengembangan GKI untuk mempelajari lebih lanjut cara bekerja dengan tim Kernel Android guna mengoptimalkan kernel GKI untuk produk mereka.

Irama pelepasan GKI

GKI dirilis secara bulanan pasca pembekuan KMI.

Rilis GKI Android 13 dan 14

Tabel berikut hanya berlaku untuk android13-5.10 , android13-5.15 , dan android14-6.1 .

Bangunan bersertifikat bulanan GKI Tanggal batas check-in Tanggal siap pramuat GKI Dikonfirmasi?
Oktober 14 Oktober 2022 31 Oktober 2022 Ya
November 14 November 2022 30 November 2022 Ya
Desember 9 Desember 2022 21 Desember 2022 Ya
Januari 17 Januari 2023 31 Januari 2023 Ya
Februari 15 Februari 2023 28 Februari 2023 Ya
Berbaris 15 Maret 2023 31 Maret 2023 Ya
April 13 April 2023 28 April 2023 Ya
Mungkin 17 Mei 2023 31 Mei 2023 Ya
Juni 15 Juni 2023 30 Juni 2023 Ya
Juli 18 Juli 2023 31 Juli 2023 Ya
Agustus 16 Agustus 2023 31 Agustus 2023 Ya
September 14 September 2023 29 September 2023 Ya
Oktober 18 Oktober 2023 31 Oktober 2023 Ya
November 10 November 2023 30 November 2023 Ya
Desember 7 Desember 2023 22 Desember 2023 Ya
Januari 16 Januari 2024 31 Januari 2024 Ya
Februari 13 Februari 2024 29 Februari 2024 Ya
Berbaris 13 Maret 2024 29 Maret 2024 Ya
April 16 April 2024 30 April 2024 Ya
Mungkin 14 Mei 2024 31 Mei 2024 Ya
Juni 12 Juni 2024 28 Juni 2024 Ya
Juli 16 Juli 2024 31 Juli 2024 Ya
Agustus 15 Agustus 2024 30 Agustus 2024 Ya
September 17 September 2024 30 September 2024 Ya
Oktober 15 Oktober 2024 31 Oktober 2024 Ya
November 11 November 2024 27 November 2024 Ya
Desember 6 Desember 2024 23 Desember 2024 Ya

Mulai Januari 2024, kami akan melanjutkan rilis bulanan android14-5.15 sesuai dengan ritme bulanan yang ditentukan seperti yang diuraikan dalam tabel di bawah.

Bangunan bersertifikat bulanan GKI Tanggal batas check-in Tanggal siap pramuat GKI Dikonfirmasi?
Januari 16 Januari 2024 31 Januari 2024 Ya
Februari 13 Februari 2024 29 Februari 2024 Ya
Berbaris 4 Maret 2024 15 Maret 2024 Ya
April 1 April 2024 17 April 2024 Ya
Mungkin 1 Mei 2024 17 Mei 2024 Ya
Juni 3 Juni 2024 17 Juni 2024 Ya
Juli 1 Juli 2024 15 Juli 2024 Ya
Agustus 1 Agustus 2024 16 Agustus 2024 Ya
September 2 September 2024 16 September 2024 Ya
Oktober 1 Oktober 2024 14 Oktober 2024 Ya
November 1 November 2024 15 November 2024 Ya
Desember 2 Desember 2024 16 Desember 2024 Ya

Rilis GKI Android 12

Setelah Mei 2023, rilis GKI android12-5.10 akan berlangsung selama 2 bulan dan diterbitkan pada pertengahan bulan. Tabel berikut hanya berlaku untuk android12-5.10 .

Bangunan bersertifikat bulanan GKI Tanggal batas check-in Tanggal siap pramuat GKI Dikonfirmasi?
Juli 3 Juli 2023 14 Juli 2023 Ya
September 1 September 2023 15 September 2023 Ya
November 3 November 2023 17 November 2023 Ya
Januari 5 Januari 2024 19 Januari 2024 Ya
Berbaris 4 Maret 2024 15 Maret 2024 Ya
Mungkin 1 Mei 2024 17 Mei 2024 Ya

Validitas build GKI untuk OEM

OEM dapat menggunakan Android GKI yang baru dirilis. OEM dapat meluncurkan dengan build bersertifikasi GKI selama build tersebut mematuhi persyaratan LTS di Android Security Bulletin (ASB).

Rilis pengembangan mingguan

Rilis diuji dengan sotong untuk memastikan mereka melewati standar kualitas minimum .

Biner GKI tersedia untuk layanan mandiri dari ci.android.com saat perubahan digabungkan. Build mingguan tidak akan disertifikasi, namun dapat digunakan sebagai dasar pengembangan dan pengujian. Pembuatan mingguan tidak dapat digunakan untuk pembuatan perangkat produksi bagi pengguna akhir.

Rilis bersertifikat bulanan

Rilis bulanan GKI berisi boot.img teruji yang menyertakan sertifikat yang disisipkan Google untuk membuktikan bahwa binari dibuat dari dasar kode sumber yang diketahui.

Setiap bulan, kandidat rilis bulanan GKI (tidak bersertifikat) dipilih setelah tanggal batas check-in, yang biasanya merupakan build mingguan kedua pada bulan tersebut. Setelah kandidat rilis bulanan dipilih, perubahan baru tidak akan diterima pada rilis bulan tersebut. Selama periode jendela tertutup, hanya perbaikan bug yang menyebabkan kegagalan pengujian yang dapat diatasi. Kandidat pelepasliaran menjalani jaminan kualitas—seperti yang dijelaskan di bagian kualifikasi GKI —untuk memastikan lulus uji kepatuhan pada GSI+GKI yang dibuat dengan perangkat referensi serta sotong.

Garis waktu irama rilis GKI Gambar 1. Garis waktu rilis GKI

Proses respin darurat

Respin mengacu pada proses penggabungan kembali, pembangunan kembali, pengujian ulang, dan sertifikasi ulang biner setelah kernel GKI dirilis ke publik . Anda dapat meminta pemutaran ulang biner tersertifikasi dalam kondisi berikut:

  • Untuk memperbarui daftar simbol.
  • Untuk menerapkan perbaikan pada bug, termasuk bug yang ditemukan selama persetujuan lab operator.
  • Untuk menambahkan kait vendor .
  • Untuk menerapkan patch pada fitur yang sudah ada.
  • Untuk menerapkan patch keamanan (setelah 6 bulan).

Patch keamanan secara otomatis digabungkan ke dalam cabang rilis hingga 6 bulan setelah rilis cabang. Setelah batas waktu 6 bulan, Anda harus meminta respin untuk menerapkan patch keamanan ke cabang.

Sebelum meminta respin, perhatikan panduan berikut:

  • Respin hanya diperbolehkan di cabang rilis setelah rilis publik awal dari build bulanan telah diluncurkan.

  • Permintaan respin hanya diterima untuk cabang rilis tertentu selama maksimal enam bulan setelah rilis publik awal. Setelah enam bulan, cabang memenuhi syarat untuk melakukan respin hanya untuk patch keamanan yang disebutkan dalam Buletin Keamanan Android .

  • Jika persyaratan LTS , yang ditentukan oleh Android Security Bulletin (ASB) menyebabkan cabang tidak patuh, cabang tersebut tidak akan digunakan lagi. Permintaan respin untuk cabang yang tidak digunakan lagi tidak diterima. Tanggal penghentian cabang rilis GKI tertentu disertakan dalam catatan build rilis GKI bulanan di bawah Releases . Untuk perencanaan masa depan, persyaratan LTS diperbarui pada bulan Mei dan November setiap tahunnya. Misalnya, cabang android12-5.10-2023-07 (5.10.177) tidak didukung untuk respin setelah 1 Mei 2024, karena cabang android12-5.10-2023-07 (5.10.177) tidak mematuhi Persyaratan LTS ASB-2024-05.

  • Respin hanya berlaku untuk perbaikan bug yang mendesak, pembaruan daftar simbol, atau untuk menerapkan tambalan guna memperbaiki fitur yang ada.

  • Semua patch yang masuk ke cabang rilis bulanan harus sudah digabungkan ke dalam cabang pengembangan utama GKI. Misalnya, jika patch diperlukan untuk respin android12-5.10-2022-09 , patch tersebut harus sudah digabungkan ke dalam android12-5.10 .

  • Anda harus memilih patch dari cabang pengembangan utama GKI dan mengunggah patch tersebut ke cabang rilis bulanan.

  • Dalam permintaan respin, Anda harus menetapkan prioritas (urgensi) pada permintaan tersebut. Prioritas ini membantu tim GKI untuk memberikan bantuan yang lebih baik kepada mitra secara tepat waktu. Untuk permintaan penting atau sensitif terhadap waktu, tandai prioritas sebagai P0 . Untuk permintaan P0 dan P1, Anda juga harus menjelaskan urgensinya. Tabel berikut menyediakan pemetaan prioritas bug dan waktu penyelesaian (ESRT):

    Prioritas ESRT
    P0 2 hari kerja
    P1 5 hari kerja
    hal2 10 hari kerja
    hal3 15 hari kerja
  • Anda harus mengirimkan permintaan respin terpisah per cabang rilis. Misalnya, jika respin diperlukan untuk android12-5.10-2022-08 dan android12-5.10-2022-09 , Anda harus membuat dua permintaan respin.

  • Setelah build disediakan dan permintaan respin ditandai sebagai diperbaiki, Anda tidak boleh membuka kembali permintaan respin untuk menambahkan CL tambahan. Anda harus mengajukan permintaan respin baru jika ada patch tambahan yang perlu digabungkan.

  • Untuk setiap CL yang dipertimbangkan, tambahkan tag berikut. Kemajuan permintaan respin diblokir tanpa informasi ini.

    • Bug : ID bug harus ditambahkan ke pesan komit untuk setiap CL.
    • Change-Id : harus identik dengan Change-Id dari perubahan cabang dasar.
  • Jika permintaan pemutaran ulang memerlukan respons Anda, dan Anda tidak merespons dalam tiga hari kerja, prioritas akan diturunkan satu tingkat (misalnya, P0 diturunkan ke P1 ). Jika Anda tidak merespons selama dua minggu, bug tersebut ditandai sebagai Tidak Dapat Diperbaiki (Usang) .

Kirimkan permintaan pemutaran ulang

Diagram berikut menunjukkan proses respin. Prosesnya dimulai ketika Mitra OEM (Anda) mengajukan permintaan respin.

Proses respin darurat Gambar 2. Proses respin

Untuk masuk ke dalam proses respin:

  1. Isi formulir permintaan Respin GKI . dan segera hubungi Manajer Akun Teknis Google Anda. Formulir ini membuat bug permintaan respin GKI. Bug permintaan respin dapat dilihat oleh Anda (pemohon), tim GKI, dan individu tertentu yang Anda tambahkan ke daftar CC bug.
    • Jika Anda sudah memiliki perbaikan, permintaan harus mengarah ke pengiriman patch di AOSP sehingga Google dapat meninjaunya. Jika pengiriman patch tidak memungkinkan, patch harus dilampirkan sebagai file teks ke permintaan.
    • Jika Anda tidak memiliki perbaikan, permintaan harus berisi informasi sebanyak mungkin, termasuk nomor versi kernel dan log, sehingga Google dapat membantu men-debug masalah tersebut.
  2. Tim Google GKI meninjau permintaan tersebut dan menyetujuinya atau memberikannya kembali kepada Anda jika diperlukan informasi lebih lanjut.
  3. Setelah perbaikan disetujui, kode tim Google GKI meninjau (CR+2) perubahan tersebut. Peninjauan memulai jangka waktu ESRT. Tim GKI menggabungkan, membangun, menguji regresi, dan mengesahkan perubahan.
  4. Biner dilepaskan ke ci.android.com . Jangka waktu ESRT berakhir dan tim Google GKI menandai permintaan tersebut sebagai sudah diperbaiki dan mereferensikan build respin. Pembuatan respin juga diposting di halaman pembuatan rilis Gambar Kernel Generik (GKI) .

Kualifikasi GKI

Jenis bangunan GKI Penegakan kualitas Catatan
Mingguan Pengujian sotong
  • sepatu bot
  • Bagian dari VTS
  • Bagian dari CTS
  • Tidak bersertifikat. Hanya untuk pengujian dan
    perangkat muncul.
  • Tidak dapat digunakan untuk meluncurkan perangkat.
Bulanan (bersertifikat) Pengujian sotong
  • sepatu bot
  • VTS
  • CTS
Referensi pengujian perangkat keras
  • sepatu bot
  • VTS
  • CTS
    Respin (bersertifikat) Pengujian sotong
    • sepatu bot
    • VTS
    • Bagian dari CTS
    Pengujian perangkat referensi
    • sepatu bot
    • VTS
    • Dibangun di atas bangunan bersertifikat GKI.
    • Bangunan tersebut disertifikasi setelah kualifikasi.

    Tempat mendapatkan artefak bangunan

    Artefak untuk semua rilis dapat diperoleh dari ci.android.com .

    Anda dapat menemukan informasi selengkapnya tentang CI, termasuk hasil pengujian di dasbor Android Continuous Integration .

    FAQ

    Apakah mungkin membuat biner GKI baru berdasarkan GKI yang sudah dirilis?

    Ya, ini dikenal sebagai respin. Proses respin didukung selama build GKI yang dirilis (tempat respin diminta) mematuhi persyaratan LTS di Android Security Bulletin (ASB).

    Apakah mungkin untuk mereproduksi biner GKI?

    Ya, lihat contoh di bawah ini.

    GKI 2.0
    5.10 kernel prebuilts from build 7364300
    https://ci.android.com/builds/submitted/7364300/kernel_aarch64/latest
    

    Untuk mereproduksi contoh, unduh manifest_$id.xml dan jalankan perintah berikut:

    repo init -u https://android.googlesource.com/kernel/manifest
    mv manifest_7364300.xml .repo/manifests
    repo init -m manifest_7364300.xml --depth=1
    repo sync
    # build the GKI images
    # You may want to use LTO=thin to build faster for development
    BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh
    # (optional) build virtual platform modules
    BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.aarch64 build/build.sh
    

    Anda dapat mengambil salinan artefak GKI dari out/.../dist .

    Apakah biner GKI (termasuk spin patch darurat) telah dibuat pada basis kode terbaru?

    Tidak. Respins hanya berisi patch yang berada di atas kernel tersertifikasi bulanan yang telah dipilih. Respin ini berisi semua perbaikan bug pemblokiran peluncuran yang dilaporkan hingga waktu tertentu oleh OEM menggunakan rilis bulanan dasar yang sesuai. Lihat contoh berikut tentang bagaimana skenario seperti ini terjadi.

    • OEM1 dan OEM2 memutuskan untuk menggunakan rilis biner GKI mulai November 2021.
    • OEM1 dan OEM2 menemukan masalah yang memerlukan patch untuk dukungan. Tambalan ini mungkin berbeda atau mungkin sama.
    • Respin di atas biner November 2021 telah meluncurkan perbaikan pemblokiran yang dilaporkan oleh OEM1 dan OEM2 selama jendela respin, tetapi tidak lebih.
    • Isu-isu yang disebutkan dalam poin kedua juga disertakan dalam rilis bulanan GKI berikutnya.

    Respin Oktober memiliki semua patch yang dikirimkan OEM, tetapi patch OEM lainnya memengaruhi kami, karena patch tersebut belum diuji secara khusus dengan produk kami. Apakah mungkin hanya menyertakan patch kami saja?

    Ini tidak mungkin. Jalur respin "per-OEM" saat ini tidak dapat diskalakan. Sebaliknya, tim GKI meneliti setiap perubahan yang terjadi pada build respin, dan menguji perubahan tersebut dengan semua perangkat keras yang tersedia sebelum membuat build baru. Jika tim GKI menemukan bahwa masalahnya hanya terjadi pada OEM/perangkat/model, tim GKI dapat memastikan bahwa kode yang ditambahkan oleh perubahan hanya dijalankan pada perangkat/model/SKU yang terpengaruh.

    Manfaat utama dari respin terpadu adalah setiap perangkat yang menggunakan basis rilis yang sama mendapat manfaat satu sama lain, terutama jika bug yang ditemukan bersifat umum dan berlaku untuk semua pengguna. Bug kernel inti yang ditemukan dalam pengujian operator adalah contoh spesifik dari konsep ini.

    Apakah ada situasi ketika Google memberikan informasi spesifik tentang patch OEM dan skenario masalahnya, sehingga OEM dapat mengevaluasi dampak dan risiko penerapan patch tersebut pada produk mereka?

    Google tidak akan pernah menambahkan perubahan pada versi respin sampai masalahnya dipahami dan semua detailnya telah dikumpulkan. Ini terlihat di changelog (pesan komit). Google tidak mengungkapkan perangkat spesifik apa yang terpengaruh, namun OEM selalu dapat menemukan deskripsi masalah dan solusi di log perubahan.