Semua yang perlu Anda ketahui tentang Project Mainline Android

Project Mainline adalah perubahan terbesar pada Android sejak Project Treble. Inilah artinya dan apa yang dilakukan semua modul, Lihat!

Salah satu perubahan terbesar di Android dalam beberapa tahun terakhir yang terbang di bawah radar, relatif terhadap kepentingannya, adalah pengenalan Jalur Utama Proyek di Android 10. Google mengamanatkan penyertaan modul Mainline tertentu di seluruh rilis Android, dengan Android 11 datang dengan a gabungan wajib total 25 modul Mainline. Berikut adalah penjelasan tentang apa itu Project Mainline dan apa yang ingin diselesaikannya, beserta daftar semua modul Project Mainline Android.

Apa itu Proyek Mainline?

Untuk memahami Project Mainline dengan benar, kita harus mundur sedikit. Jika Anda kembali ke beberapa tahun yang lalu, banyak percakapan seputar pembaruan Android berpusat pada masalah fragmentasi. Fragmentasi adalah salah satu tantangan terbesar yang harus diselesaikan Google di Android sekitar era Ice Cream Sandwich - Lollipop. Meskipun Android sebagai platform menerima pembaruan rutin dengan pola yang sebagian besar dapat diprediksi, pembaruan ini biasanya membutuhkan waktu yang sangat lama untuk sampai ke tangan konsumen akhir, jika ada. Jadi, sementara Google memperbaiki bug kritis dan masalah keamanan di tingkat platform, peluncuran sebenarnya dari perubahan ini meninggalkan banyak hal yang diinginkan. Ada banyak perantara (vendor SoC, OEM, operator, dll.) dan banyak komponen bergerak yang terlibat dalam memberikan pembaruan ke ponsel Anda, dan masalah fragmentasi tampaknya tidak akan terselesaikan dengan sendirinya tanpa memerlukan pukulan keras intervensi.

Salah satu upaya besar untuk mengatasi masalah ini datang dalam bentuk Trebel Proyek bersamaan dengan Android 8.0 Oreo, yang melibatkan perancangan ulang utama Android, memisahkan komponen kerangka OS Android dari HAL vendor dan kernel Linux. Project Treble, pada dasarnya, memodulasi Android dengan memisahkan kerangka kerja OS dari perangkat lunak tingkat rendah khusus perangkat. Dengan cara ini, pembuat perangkat (OEM) tidak perlu menunggu produsen silikon (vendor SoC) memperbarui kode implementasi vendor mereka, dan OEM dapat memperbarui kerangka kerja OS Android secara mandiri. Hasil akhirnya adalah adopsi yang lebih cepat dari rilis Android yang lebih baru dari OEM, karena tidak lagi diperlukan menunggu perantara (vendor SoC) untuk menyelesaikan tugasnya terlebih dahulu sebelum mereka dapat mulai melakukannya milik mereka.

Meskipun situasi pembaruan Android tidak langsung membaik secara dramatis dengan Project Treble, hal itu sebagian besar memungkinkan OEM yang lebih luas partisipasi dalam Android 10 dan Android 11 beta serta memudahkan OEM untuk mengupdate lebih banyak perangkat mereka dengan lebih cepat linimasa. Selain itu, seluruh konsep GSI (Generic System Image) berdampak besar pada pengembangan aftermarket di forum kami.

Pengembang mem-boot Android 11 pada 22 perangkat lama dengan Project Treble GSI

Project Mainline memperluas upaya Project Treble. Sementara Treble mengurangi ketergantungan OEM pada vendor SoC untuk setiap pembaruan OS, Mainline mengurangi ketergantungan Google pada OEM untuk mengirimkan pembaruan keamanan ke komponen OS utama. Project Mainline memperluas filosofi Treble ke bagian yang lebih penting dari framework Android, menghapus OEM sebagai perantara dependen dari persamaan ini. Tujuan Project Mainline adalah agar Google merebut kendali atas komponen kerangka kerja dan aplikasi sistem yang ada penting untuk keamanan dan menjaga konsistensi pengembangan jauh dari OEM. Project Mainline berhak disebut sebagai itu perubahan terbesar pada Android sejak Project Treble.

Untuk Project Mainline, Google menggunakan modul Mainline yang dikirimkan melalui kerangka Layanan Google Play dan Google Play Store. Setiap modul Mainline dikirimkan sebagai file APK, file APEX, atau sebagai APK-in-APEX. Saat modul Mainline sedang diperbarui, pengguna akan melihat notifikasi "Pembaruan Sistem Google Play" (GPSU) di perangkatnya. Secara efektif, untuk mengirimkan pembaruan ke komponen penting, Google telah melewati kebutuhan untuk menunggu OEM meluncurkan pembaruan, memilih untuk melakukan tugas itu sendiri.

Sebagai Google menyatakan di situs web Android:

Komponen sistem modular memungkinkan mitra Google dan Android untuk mendistribusikan pembaruan secara luas, cepat, dan lancar ke perangkat pengguna akhir dengan cara yang tidak mengganggu. Misalnya, kombinasi fragmentasi codec media dan bug kritis dapat secara dramatis memperlambat adopsi aplikasi dan keterlibatan pengguna. Pembaruan yang sering dilakukan pada modul terkait media dapat mengurangi fragmentasi codec untuk membuat perilaku aplikasi media lebih konsisten di berbagai perangkat Android dan memperbaiki bug penting untuk membangun kepercayaan pengguna.

Android 10 atau lebih tinggi mengonversi komponen sistem yang dipilih menjadi modul, beberapa di antaranya menggunakan format penampung APEX (diperkenalkan di Android 10) dan beberapa di antaranya menggunakan format APK. Arsitektur modular memungkinkan komponen sistem diperbarui dengan perbaikan bug kritis dan lainnya peningkatan sesuai kebutuhan, tanpa memengaruhi implementasi vendor tingkat rendah atau aplikasi tingkat tinggi dan jasa.

Sebagai Ars Technica menyebutkan:

Project Mainline, AKA "Pembaruan Sistem Google Play", diperkenalkan di Android 10 sebagai upaya besar untuk membuat komponen sistem inti Android lebih modular dan dapat diperbarui. Mainline memperkenalkan jenis file "APEX" baru khusus untuk komponen sistem, dengan tujuan pengiriman kode inti Android melalui Play Store semudah Anda mengirimkan pembaruan aplikasi. Sebelumnya, satu-satunya blok kode Android yang dapat dikirimkan adalah APK, tipe file yang awalnya dirancang untuk aplikasi pihak ketiga. Ini datang dengan segala macam batasan keamanan dan hanya bisa dimulai terlambat dalam proses boot-up, jadi APEX dibuat dengan mempertimbangkan komponen sistem yang lebih kuat. APEX hanya dapat dibuat oleh Google atau produsen perangkat Anda, sehingga dapat terlihat lebih kuat dan menampung komponen boot-up penting seperti runtime aplikasi.

Mainline bukan hanya solusi teknis, ini juga tentang membuat lebih banyak bagian Android yang didistribusikan secara terpusat Google, yang melibatkan negosiasi dengan produsen perangkat dan membuat mereka semua setuju untuk mengirimkan blok yang sama kode. Modul Mainline pada akhirnya menjadi wajib untuk dikirim, jadi Mainline sebenarnya merupakan kolaborasi besar dengan produsen perangkat untuk memastikan satu modul di seluruh ekosistem memenuhi kebutuhan semua orang. Tidak setiap modul Mainline adalah modul APEX yang sangat kuat—beberapa hanya APK yang sekarang merupakan kode Android yang didistribusikan Google.

Project Mainline — Modul

Dengan Android 10, Google mengamanatkan penyertaan 13 modul Mainline khusus. Dengan Android 11, jumlah total modul wajib adalah 25. Berikut adalah daftar lengkapnya, di samping beberapa detail utama:

Nama Modul

Nama paket

Jenis

Perangkat Ditingkatkan ke atau Diluncurkan dengan Android 11

PerangkatDiluncurkan dengan Android 10

Perangkat Ditingkatkan ke Android 10

adbd

com.google.android.adbd

PUNCAK

Harus

Tidak didukung

Tidak didukung

Waktu Proses Android Neural Network API

com.google.android.neuralnetworks

PUNCAK

Harus

Tidak didukung

Tidak didukung

Masuk Portal Tawanan

com.google.android.captiveportallogin

APK

Harus

Sangat direkomendasikan

Opsional

Siaran Sel

com.google.android.cellbroadcast

PUNCAK

Harus

Tidak didukung

Tidak didukung

Konskripsi

com.google.android.conscrypt

PUNCAK

Harus

Sangat direkomendasikan

Opsional

Penyelesai DNS

com.google.android.resolv

PUNCAK

Harus

Sangat direkomendasikan

Opsional

Dokumen UI

com.google.android.documentsui

APK

Harus

Harus

Opsional

ExtServices - APK

com.google.android.ext.services

APK

Harus

Harus

Harus

ExtServices - APEX

com.google.android.extservices

PUNCAK

Harus

Tidak didukung

Tidak didukung

Perpustakaan IPsec/IKEv2

com.google.android.ipsec

PUNCAK

Harus

Tidak didukung

Tidak didukung

Kodek Media

com.google.android.media.swcodec

PUNCAK

Harus

Harus

Opsional

Komponen Kerangka Media

com.google.android.media

PUNCAK

Harus

Harus

Opsional

Penyedia Media

com.google.android.mediaprovider

PUNCAK

Harus

Tidak didukung

Tidak didukung

Metadata Modul

com.google.android.modulemetadata

APK

Harus

Harus

Harus

Komponen Tumpukan Jaringan

com.google.android.networkstack

APK

Harus

Sangat direkomendasikan

Opsional

Konfigurasi Izin Tumpukan Jaringan

com.google.android.networkstack.permissionconfig

APK

Harus

Sangat direkomendasikan

Opsional

Pengontrol Izin - APK

com.google.android.permissioncontroller

APK

Harus

Harus

Harus

Pengontrol Izin - APEX

com.google.android.izin

PUNCAK

Harus

Tidak didukung

Tidak didukung

Ekstensi SDK

com.google.android.sdkext

PUNCAK

Harus

Tidak didukung

Tidak didukung

Statsd

com.google.android.os.statsd

PUNCAK

Harus

Tidak didukung

Tidak didukung

Paket Versi Kereta Telemetri

com.google.mainline.telemetri

APK

Harus

Tidak didukung

Tidak didukung

Penambatan

com.google.android.tethering

PUNCAK

Harus

Tidak didukung

Tidak didukung

Data Zona Waktu

com.google.android.tzdata

PUNCAK

Tidak harus

Harus

Opsional

Data Zona Waktu 2

com.google.android.tzdata2

PUNCAK

Harus

Tidak didukung

Tidak didukung

Wifi³

com.google.android.wifi

PUNCAK

Harus

Tidak didukung

Tidak didukung

Untuk memberikan beberapa konteks pada kolom di atas, kolom berjudul "Perangkat Ditingkatkan ke atau Diluncurkan dengan Android 11" menyertakan detail tentang apakah modul harus ada (atau tidak boleh hadir, dalam hal data Zona Waktu karena penyertaan alternatifnya) di semua perangkat yang telah ditingkatkan ke Android 11, atau diluncurkan dengan Android 11 dari kotak. Demikian pula, perangkat yang diluncurkan dengan Android 10 harus menyertakan beberapa modul, sangat disarankan untuk menyertakan beberapa modul lainnya, dan tidak didukung oleh modul lainnya. Untuk perangkat yang ditingkatkan ke Android 10 (berbeda dengan yang diluncurkan dengan Android), daftar modul yang diperlukan lebih singkat.

Apa yang dilakukan setiap modul Jalur Utama?

Berikut penjelasan singkat untuk masing-masing modul Mainline:

Adbd

Modul adbd mengelola sesi debug adb baris perintah dan IDE. Modularisasi adbd memungkinkan Google memberikan peningkatan kinerja dan perbaikan bug lebih cepat. Ini penting karena beberapa bug di masa lalu terkait dengan pengurasan baterai, dan dapat menyebabkan perangkat terus menggunakan 100% CPU hingga ponsel mati. Jadi mengeluarkan perbaikan ini sangat penting bagi Google karena adb banyak digunakan oleh pengembang aplikasi dan OEM untuk pengujian.

Waktu Proses Android Neural Networks API

Ini adalah perpustakaan yang berada di antara aplikasi dan driver backend. API pada gilirannya adalah Android C API untuk menjalankan operasi pembelajaran mesin intensif komputasi pada perangkat seluler, dan untuk mengaktifkan operasi inferensi yang dipercepat perangkat keras.

Siaran Seluler

Siaran Seluler mengacu pada peringatan darurat dan non-darurat (seperti peringatan AMBER). Modul ini berkaitan dengan tugas di sekitar peringatan ini, dan dengan fungsi tambahan lainnya seperti pendekodean SMS dan geofencing untuk peringatan darurat nirkabel.

Konskripsi

Modul Conscrypt menangani implementasi TLS Android dan fungsi kriptografi lainnya seperti pembuat kunci, sandi, dan intisari pesan. Pengiriman ini sebagai modul memungkinkan Google mempercepat peningkatan keamanan, tanpa harus bergantung pada pembaruan OTA.

Penyelesai DNS

Seperti namanya, DNS resolver menyelesaikan DNS, yaitu mengubah URL yang dapat dibaca manusia menjadi alamat IP. Modul ini berisi kode yang mengimplementasikan penyelesaian rintisan DNS, dan mengirimkannya sebagai modul memungkinkan Google memberikan perlindungan pengguna yang lebih baik terhadap intersepsi DNS dan serangan pembaruan konfigurasi.

Dokumen UI

UI Dokumen adalah modul yang bertanggung jawab untuk mengontrol akses ke file tertentu untuk komponen yang menangani izin dokumen. Seperti yang dinyatakan Google, menjadikan akses dan izin penyimpanan ke dalam modul meningkatkan privasi dan keamanan bagi pengguna akhir fitur runtime resource overlay (RRO) memungkinkan OEM untuk membuat tema pengalaman (mengacu pada aplikasi Files) jika diperlukan ke. Sebagai modul, semua perangkat Google-Android akan dikirimkan dengan pengalaman Documents UI yang sama.

ExtServices

Modul ini mencakup komponen kerangka kerja untuk fungsionalitas OS inti seperti peringkat notifikasi, strategi pencocokan teks isi otomatis, cache penyimpanan, pengawas paket, dan layanan lainnya.

Perpustakaan IPsec/IKEv2

Modul perpustakaan ini memperhatikan fitur-fitur baru dan yang sudah ada di sekitar LAN Nirkabel Interworking (IWLAN) dan VPN, seperti menegosiasikan parameter keamanan seperti kunci, algoritme, dan terowongan konfigurasi. Gagasan dengan memodulasi fungsi-fungsi ini adalah untuk mempromosikan konsistensi ekosistem dan menyediakan cara untuk memberikan perbaikan cepat untuk masalah keamanan dan interoperabilitas.

Ini adalah tiga modul bercabang, tetapi mereka memiliki fungsi yang bergantung satu sama lain. Modul media ini menangani jenis dan kode media, berinteraksi dengan ExoPlayer, memaparkan kontrol transportasi dan informasi pemutaran ke kerangka kerja, mengoptimalkan metadata yang diindeks, dll. Ingat Stagefright, eksploitasi yang mengubah Android dan membawa konsep pembaruan keamanan bulanan ke platform? Eksploitasi itu bergantung pada kerentanan dalam perpustakaan pemutaran media. Jadi, modularisasi komponen media memungkinkan Google untuk bereaksi dengan cepat dan luas jika bug keamanan ditemukan di komponen yang sering ditargetkan ini.

Fungsi modul ini langsung jelas dari namanya, meskipun tujuannya tidak. Modul Metadata modul berisi...metadata tentang daftar modul pada perangkat. Dan itu saja.

Komponen Tumpukan Jaringan, Konfigurasi Izin Tumpukan Jaringan, Captive Portal Login

Modul Network Stack Components menyediakan layanan IP umum, pemantauan konektivitas jaringan, deteksi portal login tawanan. Modul Konfigurasi Izin menentukan izin yang memungkinkan modul lain untuk melakukan tugas terkait jaringan. Modul Captive Portal Login berurusan dengan Captive Portal — halaman web yang ditampilkan kapan terhubung ke jaringan Wi-Fi publik tertentu, di mana pengguna diminta memasukkan detail untuk mendapatkan Internet mengakses.

Pengontrol Izin

Modul ini memberikan kebijakan privasi dan elemen UI yang dapat diperbarui seputar pemberian dan pengelolaan izin. Jika ini terdengar akrab dengan apa yang dilakukan Penginstal Paket, itu karena memang begitu. Fungsi seperti pemberian izin waktu proses, pengelolaan, dan pelacakan penggunaan adalah bagian dari aplikasi Penginstal Paket hingga Android 9. Di Android 10, aplikasi Penginstal Paket dibagi menjadi beberapa bagian untuk memungkinkan logika izin diperbarui. Modul Pengontrol Izin dikirimkan sebagai file APK, dan di Android 11, modul tersebut dapat secara otomatis mencabut izin runtime untuk aplikasi yang tidak digunakan dalam jangka waktu yang lama.

Ekstensi SDK

Modul ini agak sulit untuk dipahami dan akibatnya dijelaskan. Setiap rilis Android diberi level SDK (biasanya +1 dari pendahulunya). Saat aplikasi menargetkan SDK tertentu, diasumsikan bahwa pengembang telah memperhitungkan perilaku platform dan perubahan API yang dibawa oleh rilis Android.

Modul Ekstensi SDK menentukan level "SDK ekstensi" perangkat dan menampilkan API agar aplikasi dapat mengkueri level SDK ekstensi. Itu tentang semua yang disebutkan dalam dokumentasi resmi. ArsTechnica, meskipun, menyebutkan bahwa ini kemungkinan merupakan lapisan API sekunder yang akan dikirimkan melalui Play Store.

Statsd, Paket Versi Kereta Telemetri

Statsd bertanggung jawab untuk mengumpulkan metrik perangkat. Paket Versi Kereta Telemetri, di sisi lain, tidak mengandung kode aktif atau fungsinya sendiri. Itu hanya berisi nomor versi untuk "Kereta Telemetri" yang menurut Google adalah sekumpulan modul terkait metrik. Berdasarkan nomor versi, Google Play menampilkan versi patch keamanan kepada pengguna akhir dan mencari tahu apakah pembaruan tersedia untuk modul terkait metrik.

Penambatan

Modul Tethering berbagi koneksi Internet perangkat dengan perangkat klien lain yang terhubung melalui Wi-Fi, USB, Bluetooth, atau Ethernet. Modul ini mencakup komponen tethering dan dependensinya. Dengan menggunakan modul Tethering ini, OEM dapat mengandalkan satu implementasi referensi standar dan menghadirkan pengalaman yang konsisten di seluruh perangkat.

Data Zona Waktu

Modul Data Zona Waktu memperbarui waktu musim panas (DST) dan zona waktu pada perangkat Android, menstandarkan data (yang dapat dan memang sering berubah sebagai respons terhadap alasan agama, politik, dan geopolitik) dan mekanisme pembaruan di seluruh ekosistem. Android 8.1 dan Android 9 menggunakan mekanisme pembaruan data zona waktu berbasis APK, dan Android 10 menggantinya dengan mekanisme pembaruan modul berbasis APEX. Google menyatakan bahwa AOSP terus menyertakan kode platform yang diperlukan untuk pembaruan berbasis APK, jadi perangkat yang diupgrade ke Android 10 masih dapat menerima pembaruan data zona waktu yang disediakan partner melalui APK. Namun, Google memperingatkan bahwa pembaruan berbasis APK menggantikan pembaruan berbasis APEX.

Wifi

Ini adalah modul untuk fungsionalitas Wi-Fi. Pengguna akhir kini bisa mendapatkan pengalaman Wi-Fi yang konsisten di seluruh perangkat Android, serta perbaikan masalah interoperabilitas melalui pembaruan modul, aplikasi pengembang dapat mengurangi fragmentasi platform, dan OEM dapat memenuhi persyaratan operator sekaligus mengurangi biaya untuk individu kustomisasi.


Mudah-mudahan, artikel ini menyoroti betapa pentingnya Project Mainline bagi ekosistem Android Google.