在过去的几年里,许多chromebook都可以安装Play Store并运行Android应用程序。这为chromebook打开了一扇门,使它不仅仅是一个漂亮的web浏览器。现在,谷歌希望对Chrome OS的Android应用程序支持进行一些重大的底层更改,这可能允许一个长期要求的功能。
Chrome操作系统上的Android历史
大约四年前,谷歌为Chrome浏览器创建了一种运行Android应用程序的方法,名为Android Runtime for Chrome (ARC)。这是为Chrome OS而设计的,但开发者很快发现它可以在任何桌面平台上运行Android应用。
虽然这工作得很好,谷歌想要一些更有用的东西和Chrome OS的具体。因此,他们开始开发下一代ARC,“ARC++”,以符合经典的开发人员命名方案。arc++将Android运行时与Chrome OS深度集成,支持Play Store等功能。这就是今天Android应用程序在chromebook上运行的方式。
arc++之所以成为可能,部分原因在于Chrome操作系统(与Android一样)基于Linux内核。为了提高安全性,arc++实际上是在一个“容器”中运行的,这是一种将Android部分与Chrome OS的其他部分隔离开来的方法。虽然这些努力确实有所帮助,但Chrome团队承认还有改进的空间和潜在的漏洞。
我们试图将它们隔离开来(使用名称空间、seccomp、alt syscall、SELinux等),但最终,它们可以直接访问许多syscall和内核接口,因此可以通过使用Android的NDK编译的代码访问其中的bug。
为了了解更多关于arc++的知识,在LWN上,曾经是Chrome团队成员的David Reveman向我们解释了它是如何图形化地连接到Chrome OS的。
Chrome OS上的Linux则不同
去年,谷歌在Chrome OS上推出了一项令人难以置信的努力,使Linux应用程序可以安装和使用(通常称为Crostini)。不过,说起来容易做起来难。当然,如果你仔细想想,Chrome OS是基于Linux的,这意味着在它上面运行Linux应用程序应该相对容易。
然而,Chrome团队决定创建一个虚拟机(或VM)来运行Debian(一个Linux发行版),并将该虚拟机与Chrome OS“主机”集成。虽然他们本可以使用QEMU或VirtualBox等现有的虚拟机技术,但他们认为最好从头创建专门的工具,称为“crosvm”和“Termina”。
使用虚拟机有很多原因,但最大的原因是安全性。直接访问Chrome OS的Linux内核将为恶意代码甚至病毒创造更多的机会。
对于Android,谷歌通过Play Store来控制应用程序的生态系统,这通常意味着那里的应用程序是可信的。如果你想加载Android应用程序,你需要把你的设备设置成开发者模式,这样你就可以做一些潜在的不安全的事情。
在Linux上,谷歌没有这种级别的控制,所以没有办法将其限制在仅受信任的应用程序上。使用虚拟机可以解决这个问题,就像你安装了一个恶意应用程序一样,你可以简单地关闭虚拟机,擦除它,然后重新启动,而不会影响Chrome OS的整体运行。
将虚拟机与Chrome OS集成,让Linux应用程序在chromebook上感觉“像在家里一样”,并非没有困难。例如,最近大量的工作已经投入到创建GPU支持,以允许更图形化的Linux应用程序(以及潜在的游戏)。
进入ARCVM
官方消息称,谷歌“没有计划”对Chrome操作系统上Android应用程序的现状做出任何改变。然而,在表面之下,Chromium团队一直在努力使Chrome OS的Android应用程序支持更像他们的Linux应用程序支持。
从现有的一些证据来看,这一努力被恰当地命名为ARCVM (ARC Virtual Machine的缩写),它似乎准备利用Crostini项目中所做的工作,即通过相同的终端VM运行Android。通过迁移到虚拟机,Chrome OS的Android支持将能够利用相同的安全特性,并且在出现问题时可以轻松重置。
将Android应用程序与Chrome OS作为一个整体适当地隔离开来,这就为谷歌提供了一种可能性,使它可以在不进入开发模式的情况下同时加载Android应用程序。Chrome OS用户长期以来一直要求能够加载应用程序,因为许多被贴上与chromebook“不兼容”标签的应用程序实际上在加载时运行良好。它还将使像Aptoide这样的第三方应用程序商店可以在Chrome OS上访问。
除此之外,Android应用程序开发人员将能够在Chromebook上安装Android Studio,开发他们的应用程序,并在不处于开发模式的情况下在设备上进行测试。考虑到谷歌最近通过chromebook推动“安全开发”,这似乎是ARCVM背后最有可能的驱动力。
然而,就像在Chromium中发现的其他正在进行的项目一样,这个ARCVM项目也有可能被完全废弃,就像营火项目一样。一旦开发出一个可用的原型,他们就需要权衡利弊,看看附加应用程序的安全性和潜力是否超过了它对低端chromebook性能的潜在影响。
由于ARCVM的开发还在进行中,而且它还不是一个确定的项目,所以不知道什么时候,如果有的话,我们会看到它在我们的设备上运行。我个人的猜测是,要么在今年晚些时候,要么在Chrome操作系统上推出Android Q。