Dokumen ini menjelaskan bagaimana GKI v5.10 untuk Android 12 dirilis, termasuk rilis darurat mingguan, bulanan, dan di luar pita. Tujuan dari dokumen ini adalah untuk memberikan panduan kepada OEM tentang di mana mengambil GKI serta proses untuk perbaikan darurat di luar jalur. OEM juga dapat menggunakan panduan Pengembangan GKI untuk mempelajari lebih lanjut tentang bagaimana mereka dapat bekerja dengan tim Kernel Android untuk mengoptimalkan kernel GKI untuk produk mereka.
irama rilis GKI
GKI dirilis pada irama bulanan pasca KMI Freeze mulai 14 Juli 2021. Grafik berikut menggambarkan irama jadwal rilis.
Bangunan Bersertifikat Bulanan GKI | Batas waktu check-in | Tanggal Siap Pramuat GKI | Label | Dikonfirmasi? | |
---|---|---|---|---|---|
Juli (KMI Beku) | 14 Juli 2021 | Akhir Juli | Android 12 Build Bersertifikat AOSP - Juli | Ya | |
Agustus | 16 Agustus 2021 | Akhir Agustus | Android 12 Build Bersertifikat AOSP - Agustus | Ya | |
September | 17 September 2021 | Akhir September | Android 12 Build Bersertifikat AOSP - September | Ya | |
Oktober | 15 Oktober 2021 | 29 Oktober 2021 | Android 12 Build Bersertifikat AOSP - Oktober | Ya | |
November | 12 November 2021 | 30 November 2021 | Android 12 Build Bersertifikat AOSP - November | Ya | |
Desember | 10 Desember 2021 | 22 Desember 2021 | Android 12 Build Bersertifikat AOSP - Desember | Ya | |
Januari | 14 Januari 2022 | 31 Januari 2022 | Android 12 Build Bersertifikat AOSP - Januari | Ya | |
Februari | 14 Februari 2022 | 28 Februari 2022 | Android 12 Build Bersertifikat AOSP - Februari | Ya | |
Berbaris | 16 Maret 2022 | 31 Maret 2022 | Android 12 Build Bersertifikat AOSP - Maret | Ya | |
April | 15 April 2022 | 29 April 2022 | Android 12 Build Bersertifikat AOSP - April | Ya | |
Mungkin | 16 Mei 2022 | 31 Mei 2022 | Android 12 Build Bersertifikat AOSP - Mei | Ya | |
Juni | 15 Juni 2022 | 30 Juni 2022 | Android 12 Build Bersertifikat AOSP - Juni | Ya | |
Juli | 15 Juli 2022 | 29 Juli 2022 | Android 12 Build Bersertifikat AOSP - Juli | Ya | |
Agustus | 15 Agustus 2022 | 31 Agustus 2022 | Android 12 Build Bersertifikat AOSP - Agustus | Ya | |
September | 16 September 2022 | 30 September 2022 | Android 12 Build Bersertifikat AOSP - September | Ya | |
Oktober | 14 Oktober 2022 | 31 Oktober 2022 | Android 12 Build Bersertifikat AOSP - Oktober | Ya | |
November | 14 November 2022 | 30 November 2022 | Android 12 Build Bersertifikat AOSP - November | Ya | |
Desember | 9 Desember 2022 | 21 Desember 2022 | Android 12 Build Bersertifikat AOSP - Desember | Ya |
Validitas build GKI untuk OEM
OEM dapat menggunakan GKI Android yang baru dirilis. OEM dapat diluncurkan dengan build bersertifikasi GKI asalkan sesuai dengan persyaratan LTS di Android Security Bulletin (ASB).
Kebijakan build respin bersertifikat
- Biner bersertifikat GKI tidak didukung untuk respin setelah tidak lagi sesuai dengan persyaratan LTS di ASB. Misalnya, cabang
android12-5.10-2021-11
(5.10.66) tidak didukung untuk respin setelah November 2022, karena cabangandroid12-5.10-2021-11
(5.10.66) tidak mematuhi persyaratan LTS dari ASB-2022-11. - Lihat Proses respin darurat untuk informasi lebih lanjut.
Rilis pengembangan mingguan
Rilis diuji dengan sotong untuk memastikan mereka melewati standar kualitas minimum .Binari GKI tersedia untuk layanan mandiri dari ci.android.com saat perubahan digabungkan. Build mingguan tidak akan disertifikasi, meskipun dapat digunakan sebagai dasar untuk pengembangan dan pengujian. Pembuatan mingguan tidak dapat digunakan untuk pembuatan perangkat produksi bagi pengguna akhir.
Rilis bersertifikat bulanan
Rilis bulanan GKI berisi boot.img
yang diuji yang menyertakan sertifikat yang disisipkan Google untuk membuktikan bahwa biner 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 bulan itu. Setelah kandidat rilis bulanan dipilih, perubahan baru tidak akan diterima pada rilis bulan tersebut. Selama periode jendela tertutup, hanya perbaikan untuk bug yang menyebabkan kegagalan pengujian yang dapat ditangani. Kandidat rilis menjalani jaminan kualitas—seperti yang dijelaskan di bagian kualifikasi GKI —untuk memastikan uji kepatuhan lulus pada build GSI+GKI dengan perangkat referensi serta sotong.
Gambar 1. Jadwal rilis GKI
Proses respin darurat
Gambar 2. Proses respin darurat
OEM mungkin perlu memutar ulang kernel untuk Persetujuan Teknis (TA) yang memblokir masalah. Respin didukung pada build rilis bersertifikasi bulanan, dan memiliki waktu resolusi standar (ESRT) yang diharapkan dari dua hari kerja di zona waktu AS.
ESRT didefinisikan sebagai waktu yang diperlukan untuk mengirimkan biner GKI bersertifikat yang berisi perbaikan, selama telah disetujui oleh tim GKI dan ditinjau oleh OEM yang terpengaruh. ESRT hanyalah perkiraan dan tidak boleh ditafsirkan sebagai jaminan.
OEM yang memerlukan respin untuk perbaikan pemblokiran TA perlu melakukan hal berikut:
- Ajukan bug di Issue Tracker dan segera hubungi kontak Google Anda.
- Jika Anda sudah memiliki perbaikan, bug harus mengarah ke pengiriman patch di AOSP sehingga Google dapat meninjaunya. Jika pengiriman patch tidak memungkinkan, lampirkan patch sebagai file teks ke bug di Issue Tracker .
- Jika Anda belum memiliki perbaikan, bug harus menyertakan informasi sebanyak mungkin, termasuk nomor versi kernel dan log, sehingga Google dapat membantu men-debug masalah tersebut.
- Setelah perbaikan disetujui, kode tim Google GKI meninjau (CR+2) perubahan dan menguji regresi. Pengujian memulai hitungan mundur ESRT, dan berakhir saat biner dipublikasikan ke ci.android.com .
Kualifikasi GKI
Jenis build GKI | penegakan kualitas | Catatan |
---|---|---|
Mingguan | Tes cumi-cumi
|
|
Bulanan (bersertifikat) | Tes cumi-cumi
| |
Respin (bersertifikat) | Tes cumi-cumi
|
|
Di mana 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 untuk membangun biner GKI baru berdasarkan GKI yang sudah dirilis?
Ya, ini dikenal sebagai respin. Proses respin didukung selama GKI build yang dirilis (di mana respin diminta) sesuai dengan persyaratan LTS di Android Security Bulletin (ASB).
Apakah mungkin untuk mereproduksi binari GKI?
Ya, referensi 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 Anda dari out/.../dist
.
Apakah biner GKI (termasuk patch putaran darurat) telah dibangun di atas
basis kode terbaru?
Tidak. Respins hanya berisi patch yang berada di atas kernel bersertifikat 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 jenis skenario 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 butir kedua juga termasuk dalam rilis bulanan GKI berikutnya.
Respin Oktober memiliki semua tambalan yang dikirimkan OEM, tetapi tambalan OEM lainnya
mempengaruhi kami, karena mereka belum diuji secara khusus dengan produk kami. Apakah mungkin untuk hanya menyertakan tambalan kami?
Ini tidak mungkin. Jalur respin "per-OEM" saat ini tidak dapat diskalakan. Sebagai gantinya, tim GKI memeriksa setiap perubahan yang masuk ke build respin, dan menguji perubahan dengan semua perangkat keras yang tersedia sebelum membuat build baru. Jika tim GKI menemukan bahwa masalah tersebut khusus untuk OEM/perangkat/model, tim GKI dapat memastikan bahwa kode yang ditambahkan oleh perubahan hanya dijalankan pada perangkat/model/SKU yang terpengaruh.
Manfaat utama dari unified respins adalah bahwa setiap perangkat yang menggunakan basis rilis yang sama saling menguntungkan, terutama jika bug yang mereka temukan bersifat umum dan berlaku untuk semua pengguna. Bug kernel inti yang ditemukan dalam pengujian operator adalah contoh spesifik dari konsep ini.
Apakah ada situasi di mana Google memberikan informasi spesifik tentang patch OEM dan skenario masalah, sehingga OEM dapat mengevaluasi dampak dan risiko penerapan patch dengan produk mereka?
Google tidak akan pernah menambahkan perubahan pada build respin sampai masalahnya dipahami dan semua detail telah dikumpulkan. Ini terlihat di changelog (pesan komit). Google tidak mengungkapkan perangkat spesifik apa yang terpengaruh, tetapi OEM selalu dapat menemukan deskripsi masalah dan solusi di log perubahan.