Google telah mengungkapkan Pembaruan Sistem Dinamis, cara baru untuk menginstal GSI di Android Q yang tidak memerlukan membuka kunci bootloader.
Bersamaan dengan rilis Android 8.0 Oreo, Google meluncurkannya Proyek Tiga Kali Lipat: perancangan ulang besar-besaran dalam cara kerangka OS Android dan vendor HAL dan kernel Linux berkomunikasi. Treble adalah inisiatif besar yang dirancang untuk mengurangi versi platform Android dan fragmentasi patch keamanan, dan semua perangkat bermerek Android yang diluncurkan dengan Android Pie diharuskan mendukung Project Treble. OEM dan vendor menguji kompatibilitas Treble dengan mem-boot Generic System Image (GSI)—stok murni Android dari AOSP—dan meneruskan Rangkaian Uji Vendor (VTS) dan Compatibility Test Suite-on-Generic System Image (CTS-on-GSI). GSI telah terbukti bermanfaat tidak hanya dalam memungkinkan insinyur perangkat lunak yang bekerja untuk OEM menguji kompatibilitas Treble, namun juga membuka pintu bagi komunitas ROM kustom yang besar di XDA. Untuk rilis Android Q, Google ingin menjadikan GSI bermanfaat bagi kelompok lain: pengembang aplikasi.
Sejak rilis stabil pertama dan penurunan kode sumber dari rilis platform Android apa pun biasanya terjadi di Agustus, pengembang yang ingin menguji rilis Android berikutnya pada perangkat sebenarnya biasanya memerlukan akses ke ponsel pintar Google jika mereka tidak ingin menunggu pembaruan mencapai perangkat keras mereka sendiri. Namun, Google bekerja sama dengan OEM untuk menghadirkan Android P beta ke beberapa perangkat tahun lalu, dan mereka menindaklanjutinya tahun ini dengan Android Q beta. Selain Android Q beta resmi, Google tahun ini juga merilis GSI Q beta resmi sehingga pengembang mana pun yang memiliki perangkat yang kompatibel dengan Project Treble dapat menginstal rilis Q terbaru tanpa harus menunggu berbulan-bulan hingga build tersebut menjangkau perangkat mereka. Cara baru dalam menguji rilis Android berikutnya ini memberi pengembang lebih banyak peluang, dan dengan demikian lebih banyak waktu, untuk menguji aplikasi mereka perubahan besar di Android.
Sayangnya, metode saat ini menginstal GSI bisa jadi sulit. Hal ini memerlukan membuka kunci bootloader—yang berarti menghapus semua data pengguna dan/atau membatalkan garansi—dan mem-flash image melalui protokol fastboot. Ini bukanlah proses yang cepat dan sederhana yang harus dilakukan oleh pengembang aplikasi, jika perangkat mereka bahkan memungkinkan untuk membuka kunci bootloader. Itu sebabnya, untuk beberapa bulan terakhir, Google telah berupaya menemukan cara baru untuk mem-boot GSI. Masukkan fitur baru yang disebut Pembaruan Sistem Dinamis, atau DSU.
(Fitur ini sebelumnya dikembangkan dengan nama "Live Image", "Dynamic Android", dan "Android on Tap", jadi jangan kaget jika Google menyebutnya dengan istilah lain dalam beberapa minggu atau bulan.)
Pembaruan Sistem Dinamis di Android Q
Tujuan fitur DSU adalah memungkinkan pengembang melakukan booting ke GSI tanpa mengganggu instalasi saat ini. Artinya, bootloader tidak perlu dibuka kuncinya dan data pengguna tidak perlu dihapus. Proses instalasi juga sangat disederhanakan karena Google telah menyediakan antarmuka baris perintah melalui ADB dan aplikasi yang dapat dikontrol melalui maksud. Berikut tampilannya saat mem-boot GSI menggunakan DSU:
Dalam video ini*, Google Pixel 3 XL yang menjalankan Android Q beta 3 di-boot ulang menjadi GSI. Di lingkungan ini, pengembang aplikasi dapat menginstal dan menguji aplikasi mereka untuk kompatibilitas Q API. Setelah selesai melakukan pengujian, mereka cukup melakukan boot ulang kembali ke perangkat lunak Q beta 3 reguler di perangkat. Pada dasarnya Anda melakukan dual boot GSI sehingga Anda dapat menguji aplikasi Anda dengan aman!
*Kami merekam video ini di Google I/O 2019 saat DSU belum tersedia untuk umum, sehingga versi Q beta 3 pada Pixel 3 XL yang difilmkan sedikit dimodifikasi oleh Google untuk menyertakan dukungan DSU. Perangkat yang menjalankan Q beta 4 dan versi lebih baru memenuhi syarat untuk mendukung DSU jika memenuhi persyaratan di bawah.
Persyaratan untuk Pembaruan Sistem Dinamis
Mengaktifkan dan menjalankan dual boot bukanlah tugas yang mudah bagi Google. Perubahan besar harus dilakukan pada cara pengelolaan partisi di Pixel 3, uji coba Google untuk DSU. Jadi, persyaratan utama pertama untuk dukungan DSU adalah perangkatnya mendukung partisi dinamis. Partisi dinamis melibatkan satu partisi penyimpanan nyata yang dibagi menjadi partisi logis yang dapat diubah ukurannya seperti sistem, vendor, odm, oem, produk, dll. Selama instalasi GSI, ruang dicadangkan untuk sistem baru dan partisi data pengguna dengan mengambil blok yang tidak terpakai dari partisi data pengguna yang ada. Karena partisi baru ini bisa berukuran beberapa gigabyte, dukungan DSU hanya masuk akal jika logis jika tidak, perangkat perlu mencadangkan beberapa gigabyte ruang penyimpanan untuk GSI secara permanen instalasi.
Persyaratan lainnya mencakup ramdisk, yang memutuskan apakah akan melakukan booting ke pemulihan, sistem, atau partisi logis, dan partisi metadata untuk menyimpan metadata GSI. Secara umum, elemen dasar untuk dukungan DSU adalah persyaratan peluncuran Android Q, menurut pimpinan Proyek Treble Iliyan Malchev. Kami tidak yakin apakah itu benar semuanya yang diperlukan untuk mendukung DSU merupakan persyaratan peluncuran Android Q, namun kita dapat berasumsi bahwa sebagian besar, jika tidak semua, perangkat diluncurkan dengan Android Q Bisa mendukung DSU meskipun saat ini Google tidak mewajibkannya. Sejauh ini, hanya Pixel 3, Pixel 3 XL, Pixel 3a, dan Pixel 3a XL yang memiliki partisi dinamis, dan di antara perangkat tersebut, hanya Pixel 3 dan Pixel 3 XL yang mendukung DSU di Android Q beta 4. Meskipun dukungan DSU tidak diperlukan, Google berharap OEM tetap mengaktifkan fitur tersebut karena menyederhanakan pengujian kompatibilitas Treble secara aman. Misalnya, seorang insinyur perangkat lunak OEM dapat memasang GSI pada kartu SD sehingga mereka dapat dengan cepat melakukan booting di beberapa perangkat untuk menguji kompatibilitas Treble.
Keamanan untuk Pembaruan Sistem Dinamis
Karena DSU pada dasarnya memperkenalkan sistem operasi kedua, Google perlu memastikan bahwa instalasi baru ini tidak dapat dirusak untuk merusak integritas perangkat. Jadi, itu perlindungan keamanan dasar yang sama untuk instalasi asli juga diterapkan untuk instalasi GSI: Kebijakan Boot dan SELinux Terverifikasi Android. Selain itu, hanya aplikasi dengan tanda tangan INSTALL_DYNAMIC_SYSTEM|izin istimewa yang dapat memulai GSI instalasi, sementara aplikasi dengan izin tanda tangan MANAGE_DYNAMIC_SYSTEM dapat mengaktifkan/menonaktifkan atau menghapus GSI instalasi. Artinya hanya aplikasi tingkat sistem tepercaya yang dapat bekerja dengan DSU.
Untuk memastikan bahwa data pengguna asli terlindungi, Google telah menambahkan mekanisme perlindungan ekstra di Android Q. Ditelepon "Pos pemeriksaan," fitur ini melindungi terhadap kerusakan data pengguna dengan mengembalikan partisi yang diperiksa ke keadaan semula. Pos pemeriksaan berguna tidak hanya untuk DSU. Mereka juga digunakan untuk melindungi dari kesalahan Jalur Utama Proyek Modul APEX dan A/B Pembaruan OTA. (Perangkat dengan partisi A/B sudah memiliki perlindungan rollback, namun rollback tersebut memerlukan reset data pabrik sedangkan pos pemeriksaan data pengguna tidak.)
Memasang GSI
Jika perangkat Anda mendukung DSU seperti seri Pixel 3, maka menginstal GSI sangatlah mudah. Pertama-tama Anda harus memastikan bahwa tanda fitur Sistem Dinamis diaktifkan melalui salah satu dari dua cara berikut:
- Jika Anda menggunakan versi debug pengguna, aktifkan tanda settings_dynamic_android di Setelan > Sistem > Opsi pengembang > Tanda fitur.
- Jika Anda menggunakan build pengguna, jalankan perintah adb shell berikut:
setproppersist.sys.fflag.override.settings_dynamic_system 1
Kemudian, unduh Android Q beta GSI terbaru dari Google atau OEM perangkat Anda. (DSU hanya mengizinkan pemasangan GSI yang ditandatangani oleh Google atau OEM.) Setelah diunduh, gunakan simg2img untuk mengubah gambar jarang menjadi gambar mentah. Gunakan gzip untuk mengemas gambar mentah, lalu salin arsip yang dihasilkan ke lokasi di perangkat Anda penyimpanan eksternal (misalnya /data/media/0/Download) atau media penyimpanan eksternal sebenarnya (seperti SD fisik kartu). Terakhir, luncurkan aplikasi DynamicSystemInstallationService dengan tujuan yang benar untuk memulai instalasi:
adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592
Setelah Anda mengklik restart, Anda akan boot ke GSI. Kegunaan perangkat di GSI bergantung pada seberapa baik OEM perangkat Anda menerapkan Treble (atau lebih tepatnya, seberapa sedikit mereka melanggar Treble kompatibilitas.) Beberapa perangkat akan bekerja lebih baik dengan GSI dibandingkan perangkat lainnya, namun secara umum, jangan berharap untuk menggunakan instalasi ini sebagai instalasi sehari-hari. pengemudi. Anda dimaksudkan untuk menguji aplikasi Anda lalu keluar dengan melakukan boot ulang. Jika Anda ingin tetap menggunakan instalasi GSI untuk pengujian lebih lanjut, Anda dapat menggunakan gsi_tool perintah cangkang.
Petunjuk lengkap instalasi GSI untuk DSU dapat ditemukan Di Sini. Bug dapat diajukan di Pelacak Masalah Google,reddit, atau Tumpukan Melimpah.
Alasan di balik Pembaruan Sistem Dinamis
Saat saya berbicara dengan Iliyan Malchev di Google I/O, dia mengulangi apa yang dikatakan Hung-ying Tyan dari tim Treble tentang akses awal GSI di KTT Pengembang Android bulan November. Google membuat DSU untuk meminta umpan balik dari khalayak seluas mungkin. Tujuannya adalah untuk meningkatkan kualitas GSI, yang pada gilirannya meningkatkan kualitas rilis Android di masa depan karena GSI adalah bentuk paling murni dari Android. Google saat ini adalah satu-satunya perusahaan yang menguji kompatibilitas GSI versi berikutnya (misalnya, seberapa baik image sistem Android Q bekerja di atas Android P. implementasi vendor), namun seiring dengan semakin banyaknya orang yang mem-flash GSI dan memberikan masukan, OEM dapat memperbaiki pelanggaran kompatibilitas Treble sehingga GSI akan bekerja lebih baik lagi di masa mendatang. masa depan. Iliyan mengatakan ada minat yang kuat dari OEM dan vendor seperti Qualcomm untuk menggunakan kembali image vendor dari rilis Android sebelumnya dengan image sistem versi berikutnya. Inisiatif seperti DSU membantu Google dan OEM menutup kesenjangan cakupan pengujian otomatis seperti VTS dan CTS-on-GSI. Oleh karena itu, Google mendapatkan lebih banyak penguji beta untuk memberikan masukan pada rilis Android berikutnya, sekaligus mendengarkan tentang pelanggaran kompatibilitas Treble sehingga OEM dapat meningkatkan kinerja mereka.
Penambahan Pembaruan Sistem Dinamis di Android Q disambut baik, tetapi ini tidak akan menjadi solusi dual boot yang Anda harapkan. Seperti disebutkan sebelumnya, hanya image sistem yang ditandatangani oleh Google atau OEM yang dapat diinstal. Ketika saya bertanya kepada Iliyan tentang kemungkinan memperluas DSU untuk mendukung ekosistem Android alternatif sistem, dia mengatakan bahwa secara teknis hal itu mungkin dilakukan karena DSU hanyalah saluran untuk menyalurkan sistem gambar-gambar. OEM mana pun dapat menggunakannya sesuka mereka selama hasil akhirnya sesuai dengan Android. Google belum membuat alternatif untuk sistem OTA di sini, dan DSU tidak dimaksudkan untuk digunakan untuk dual boot yang sebenarnya. Terlepas dari itu, pekerjaan yang telah dilakukan Google pada Treble membuat Android lebih modular, jadi saya tidak akan terkejut jika dual boot asli menjadi kenyataan di kemudian hari.