Selama beberapa tahun terakhir, banyak Chromebook bisa menginstal Play Store dan menjalankan aplikasi Android. Hal ini membuka pintu bagi Chromebook untuk menjadi lebih dari sekadar web browser yang di anak emaskan. Sekarang, Google sedang mencari untuk membuat beberapa perubahan besar untuk dukungan aplikasi Android Chrome OS, yang memungkinkan fitur yang lama diminta.

Sejarah Android di Chrome OS

Sekitar empat tahun lalu, Google menciptakan cara bagi browser Chrome untuk menjalankan aplikasi Android, yang disebut Android Runtime for Chrome (ARC). hal ini dirancang dengan mempertimbangkan OS Chrome, tetapi pengembang dengan cepat mengetahui bahwa hal itu juga dapat digunakan untuk menjalankan aplikasi Android di Chrome pada platform desktop apa pun .

Meski ini bekerja dengan cukup baik, Google menginginkan sesuatu yang lebih berguna dan Chrome OS yang spesifik. Dengan demikian, mereka mulai mengembangkan generasi ARC berikutnya, “ARC ++” agar sesuai dengan skema penamaan pengembang klasik. ARC ++ mengintegrasikan Android Runtime secara mendalam dengan Chrome OS, memungkinkan untuk hal-hal seperti Play Store dan aplikasi Android berjalan di Chromebook hari ini.

ARC ++ mungkin bagian dari Chrome OS, seperti Android, didasarkan pada kernel Linux. Untuk meningkatkan keamanan, ARC ++ sebenarnya berjalan dalam “frame,” yang merupakan cara mengisolasi bagian-bagian Android dari Chrome OS lainnya. Meskipun upaya ini sangat membantu, tim Chrome mengakui bahwa ada ruang untuk peningkatan dan potensi untuk dieksploitasi.

Kami mencoba mengisolasinya sedikit (menggunakan ruang nama, seccomp, alt syscall, SELinux, dll …), tetapi pada akhirnya, mereka memiliki akses langsung ke banyak syscalls dan antarmuka kernel, sehingga bug di sana dapat dicapai melalui kode yang dikompilasi dengan NDK Android.

Untuk mempelajari lebih lanjut tentang ARC ++, ada penjelasan yang bagus tentang bagaimana terhubung secara grafis ke Chrome OS, di LWN , dari David Reveman yang pernah menjadi anggota tim Chrome dan sejak itu pindah ke Fuchsia.

Linux pada Chrome OS berbeda

Tahun lalu, Google meluncurkan upaya luar biasa pada Chrome OS untuk membuat aplikasi Linux tersedia untuk diinstal dan digunakan (sering disebut Crostini). Jika Anda memikirkannya, Chrome OS adalah berbasis Linux, yang berarti relatif mudah untuk menjalankan aplikasi Linux di dalamnya.

Sebaliknya, tim Chrome memutuskan untuk membuat mesin virtual (atau VM) untuk menjalankan Debian (distribusi Linux) dan mengintegrasikan VM itu dengan “host.” Chrome OS. Sementara mereka bisa menggunakan teknologi mesin virtual yang ada seperti QEMU atau VirtualBox, mereka pikir lebih baik untuk membuat tool khusus dari awal, yang disebut “crosvm” dan ” Termina .”

Ada beberapa alasan untuk menggunakan mesin virtual, tetapi yang terbesar adalah keamanan. Memiliki akses langsung ke kernel Linux Chrome OS akan menciptakan lebih banyak peluang untuk kode malware atau bahkan virus.

Untuk Android, Google mengontrol ekosistem aplikasi melalui Play Store, yang umumnya berarti aplikasi di sana dapat dipercaya. Dan jika Anda ingin sideload aplikasi Android, Anda perlu menempatkan perangkat Anda ke Mode Pengembang yang memungkinkan Anda melakukan hal-hal yang berpotensi tidak aman seperti itu.

Di Linux, di mana Google tidak memiliki tingkat kontrol, tidak ada cara untuk membatasi hanya aplikasi yang tepercaya. Menggunakan mesin virtual menyelesaikan masalah ini, seolah-olah Anda menginstal aplikasi malware, Anda cukup mematikan VM, menghapusnya, dan memulai lagi, tanpa mempengaruhi Chrome OS secara keseluruhan.

Mengintegrasikan mesin virtual dengan Chrome OS, sehingga aplikasi Linux merasa “di rumah” di Chromebook, bukannya tanpa kesulitan. Sebagai contoh, sejumlah besar pekerjaan terbaru telah dilakukan untuk menciptakan dukungan GPU untuk memungkinkan aplikasi Linux yang lebih intensif secara grafis.

Input ARCVM

Secara resmi, Google ” tidak memiliki rencana ” untuk membuat perubahan apa pun pada status quo aplikasi Android di Chrome OS. Namun, di bawah layer, tim Chromium telah berupaya membuat aplikasi Android Chrome OS lebih mendukung seperti dukungan aplikasi Linux mereka.

Upaya, tepat bernama ARCVM (kependekan dari ARC Virtual Machine), tampaknya siap untuk mengambil keuntungan dari pekerjaan yang dilakukan pada proyek Crostini dengan menjalankan Android melalui Termina VM yang sama . Dengan pindah ke mesin virtual, dukungan Android Chrome OS akan dapat memanfaatkan fitur keamanan yang sama, dan kemampuan untuk dengan mudah mengatur ulang jika terjadi kesalahan.

Membuat aplikasi Android diisolasi dari Chrome OS dengan baik sebagai keseluruhan menciptakan potensi bagi Google untuk mengizinkan pengalihan aplikasi Android tanpa memasuki Mode Pengembang. Mampu melakukan sideload aplikasi telah menjadi fitur yang lama diminta oleh pengguna Chrome OS karena banyak aplikasi yang berlabel “tidak kompatibel” dengan Chromebook sebenarnya benar-benar berfungsi dengan baik ketika sideloaded. Itu juga akan membuat toko aplikasi pihak ketiga seperti Aptoide dapat diakses di Chrome OS.

Selain itu, pengembang aplikasi Android akan dapat menginstal Android Studio di Chromebook, mengembangkan aplikasi mereka, dan mengujinya di perangkat tanpa berada dalam Mode Pengembang. Diberikan dorongan baru-baru ini Google “secure developer” Menggunakan Chromebook, hal ini sepertinya kekuatan yang paling memungkinkan di balik upaya ARCVM.

Namun, seperti proyek dalam proses yang sedang dikerjakan yang ditemukan di Chromium, ada potensi bahwa proyek ARCVM ini dapat dihapuskan sama sekali, sama seperti proyek Campfire . Setelah prototipe yang berfungsi dibuat, mereka harus mempertimbangkan pro dan kontra, untuk melihat apakah peningkatan keamanan dan potensi untuk melakukan sideload aplikasi melebihi dampak yang mungkin ditimbulkannya terhadap kinerja Chromebook kelas bawah.

Karena pengembangan ARCVM masih berlangsung dan itu sama sekali bukan proyek yang dikonfirmasi, tidak ada yang tahu kapan, kita akan melihatnya langsung di perangkat kita. Tebakan pribadi saya akan menjadi akhir tahun ini atau mendekati peluncuran Android Q di Chrome OS .