我怀疑第三方 Android 应用程序是否可以在监督模式下运行,因为 Android 在 ChromeOS 中作为来宾容器/VM 运行。
来自:https ://chromium.googlesource.com/chromiumos/docs/+/HEAD/containers_and_vms.md#Don_t-Android-apps-ARC_run-in-a-container-and-not-a-VM
词汇表
- ARC(Chrome 应用程序运行时):在 Chrome NaCl(本机客户端)沙箱中运行 Android 应用程序的旧方法/已弃用方法。有随机兼容性问题。
- ARC++(Android Runtime for Chrome [plus plus]):当前在 Chrome OS 下的容器中启动 Android 的方法。
- ARCVM (Android Runtime for Chrome in a VM):在 Chrome OS 下启动 Android 的最新方法。与 ARC++ 不同,ARCVM 在 crosvm 中运行 Android。
Android 应用程序 (ARC++) 不是在容器而不是 VM 中运行吗?
虽然 Android 应用程序当前在容器中运行,但符合条件的设备正在迁移到在 VM 中运行。
对于 ARC++ 容器,我们尝试将它们隔离开很多(使用命名空间、seccomp、alt syscall、SELinux 等),但归根结底,它们可以直接访问许多系统调用和内核接口,所以通过使用 Android 的 NDK 编译的代码可以访问其中的错误。
如果 Android 应用程序在容器中,为什么用户也不能运行代码?
我们通常不接受一个地方的低安全标准作为在所有地方降低安全标准的正当理由。相反,我们希望不断提高所有代码的安全标准。
例如,支持 Android 11+ 的设备正在从容器中的 ARC++ 迁移到 ARCVM。
Android 应用 (ARC++) 会消失吗?
没有合并这两个项目的计划。我们共享/重用了很多 Chrome 桥接代码,所以我们并不是从头开始做所有事情。
虚拟机不会减慢一切吗?
与仅在容器中或直接在系统中运行相比,VM 确实增加了开销。然而,在我们的测试中,开销对用户体验来说是微不足道的,并且非常值得在系统安全性方面获得巨大收益。
有关更多详细信息,请参阅本文档中的安全部分。
如您所见,Android 应用程序与 ChromeOS 隔离,因此任何操作(如屏幕锁定)都必须通过现有的 ChromeOS API(如Chrome OS 上的 Enterprise Management或Google 的 Family Link)进行管理
但是,将屏幕锁定在 crosh 内的脚本呢?
我不确定脚本是在 ChromeOS 开发者模式下运行,还是只是运行默认的 crosh 环境才能工作。无论哪种方式,用户对此类操作都是明确的。据我所知,Android 没有明确的面向外部的 API,因为它位于容器/VM 中。
我不能使用 Android NDK 编写一些东西来访问内核以实现我的目标吗?
可能,只要您通过所有安全层,因为 ARC++ 是基于容器技术的,但是如上所述,未来的版本将在 VM 中。