Sebuah proyek baru bernama Android Dinamis akan memungkinkan pengembang menguji AOSP Android Q GSI di perangkat apa pun yang menjalankan Android Q atau lebih baru.
Terimakasih untuk Proyek Tiga Kali Lipat, pembuat perangkat ponsel pintar telah menghadirkan pembaruan perangkat lunak Android Pie lebih cepat daripada yang dapat mereka lakukan untuk pembaruan Android Oreo, setidaknya untuk ponsel pintar andalan. Google tidak ingin hanya OEM yang mendapatkan manfaat dari Project Treble. Perusahaan sebelumnya telah melakukan hal tersebut menyatakan minatnya dalam merilis Generic System Image (GSI) Android Q untuk developer agar tidak harus bergantung pada emulator, gunakan a layanan awan, atau menunggu pembaruan di perangkat mereka untuk menguji aplikasi terhadap API level terbaru. Secara teori, merilis GSI akan memungkinkan pengembang mana pun yang memiliki perangkat yang kompatibel dengan Project Treble (awalnya Android 8.0 Oreo ke atas, namun kini dianggap hanya perangkat yang diluncurkan dengan Android 9 Pie) untuk menguji Android terbaru Versi: kapan. Yang harus dilakukan pengembang hanyalah mem-flash image sistem di atas instalasi perangkat lunak yang sudah ada—tidak memerlukan custom recovery, boot, atau image vendor.
Namun, ada beberapa masalah pada proses instalasi GSI saat ini. Pertama, Anda memerlukan bootloader yang tidak terkunci tidak mungkin pada perangkat Huawei atau Honor (tanpa membayar biaya), perangkat Nokia HMD Global (tidak termasuk Nokia 8), atau perangkat bermerek operator AS. Selanjutnya, proses akan sulit bagi siapa pun yang tidak terbiasa mem-flash gambar melalui fastboot. Terakhir, menginstal GSI sekarang mengharuskan Anda menghapus penyimpanan internal sepenuhnya, yang berarti Anda mungkin memerlukan perangkat cadangan untuk mengujinya. Saat ini, mem-flash GSI hanyalah sesuatu yang digunakan OEM untuk menguji kompatibilitas Project Treble pada perangkat mereka, dan lebih dari itu, ini hanya menarik bagi para pekerja keras. penggemar ROM khusus. Proyek "Dynamic Android" Google yang baru mungkin berupaya mengubah hal itu.
Android Dinamis—Uji GSI AOSP dengan mudah di Perangkat Android Q apa pun
Selama beberapa bulan terakhir, Google telah berupaya menemukan cara untuk mem-boot GSI dengan aman tanpa harus membuka kunci bootloader. Singkatnya, Google sedang mengembangkan aplikasi yang memiliki izin khusus yang memungkinkannya mengunduh GSI, menyediakan ruang penyimpanan, dan menandai GSI sebagai dapat di-boot. Ada beberapa komponen dalam proyek ini, jadi mari kita bahas satu per satu.
Android Dinamis dan Android On Tap
Dua layanan baru ditambahkan ke Android Q: layanan Android Dinamis dan Android On Tap. Meskipun Android Dinamis menangani pemasangan GSI, Android On Tap menginformasikan aplikasi sistem dengan callback dan maksud siaran. Misalnya, Android On Tap memperingatkan KeyguardManager untuk meminta pengguna mengonfirmasi permintaan instalasi jika perangkat dilindungi oleh PIN, kata sandi, atau pola. AOT juga memperingatkan pengguna saat mereka melakukan booting ke GSI.
Menurut deskripsi untuk "DynamicAndroidManager," layanan "menawarkan mekanisme untuk menggunakan Android baru gambar sementara." Setelah instalasi, perangkat dapat reboot ke gambar yang baru diinstal dengan yang baru dibuat /data. Melakukan boot ulang saat berada di GSI akan mengembalikan pengguna ke image sistem asli, namun image yang baru diinstal dan datanya hanya dinonaktifkan dan tidak dihapus. Namun, jika pengguna memilih untuk melakukannya, GSI dan datanya dapat dihapus sepenuhnya.
Sumber: [1], [2], [3], [4]
GSID
Daemon GSI mengalokasikan ruang di partisi /data untuk menyimpan image GSI dan datanya serta membuat image dapat di-boot. Metadata GSI disimpan di /metadata, sedangkan GSI itu sendiri dan datanya disimpan di /data/gsi. Secara default, GSID mengalokasikan 8 GB data pengguna untuk GSI yang baru diinstal. Secara umum, GSID mencari setidaknya 40% ruang kosong sebelum memulai instalasi. Terakhir, daemon mencegah pengguna menginstal GSI di dalam GSI, karena alasan yang jelas.
Sumber: [1], [2], [3], [4]
Keamanan
Boot Terverifikasi Android (AVB) diaktifkan untuk image sistem EXT4 yang baru diinstal (system_gsi dipasang ke /system). Google juga telah menerapkan kebijakan SELinux untuk layanan barunya. Terakhir, pemasangan GSI mengharuskan aplikasi memiliki izin MANAGE_DYNAMIC_ANDROID yang baru. Ini adalah izin tingkat tanda tangan yang berarti aplikasi harus ditandatangani oleh OEM.
Sumber: [1], [2]
Perintah ADB dan Fastboot
GSI juga dapat diinstal melalui perintah ADB baru. Perintah shell ADB gsi_tool baru akan memungkinkan pengguna untuk menonaktifkan, mengaktifkan kembali, menginstal dan melestarikan data pengguna, memasang dan membuat data pengguna, memasang dan menghapus data pengguna, atau memeriksa status instalasi.
gsi_tool - command-line tool for installing GSI images.
Usage:
gsi_tool <disable|install|wipe|status> [options]
disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus
Dua perintah fastboot baru akan ditambahkan untuk mengelola GSI, meskipun instalasi fastboot tidak didukung karena fastboot tidak dapat memasang data pengguna.
fastboot gsi wipe
fastboot gsi disable
Sumber: [1], [2]
Siapa yang mendapat manfaat dari hal ini?
Saya ingin mengatakan bahwa pengembang aplikasi akan dapat memanfaatkan Android Dinamis dan Android On Tap, tapi saya tidak sepenuhnya yakin. Meskipun Google telah menyatakan minatnya pada hal itu, tidak ada jaminan bahwa fitur ini akan tersedia di setiap rilis Android Q OEM non-Google. Untuk memanfaatkan hal ini di perangkat, perangkat lunak memerlukan aplikasi pemilih GSI yang ditandatangani dengan sertifikat yang sama dengan ROM. Saya juga tidak yakin bahwa pemasangan GSI dari ADB dapat dilakukan tanpa root ADB karena kebijakan SELinux.Memperbarui: Yang baru melakukan mengonfirmasi bahwa root ADB diperlukan untuk menggunakan GSI_tool. Jika hal ini tidak dimaksudkan bagi pengembang aplikasi untuk menguji aplikasi mereka pada versi Android yang bersih, kemungkinan besar hal ini hanya akan dilakukan menguntungkan para insinyur dari OEM yang ingin menguji Compatibility Test Suite (CTS) dan Vendor Test Suite (VTS) pada perangkat mereka perangkat.
Terima kasih khusus kepada pengembang yang Diakui XDA luca020400 atas bantuannya dalam artikel ini.