Google 继续致力于将 Android 移植到 Rust 

Rust-Android

Google 已经在致力于将不同的 Android 组件迁移到 Rust

到现在几个月来, 我们在博客上分享了一些新闻 强调其所获得的支持和接受 Rust 在不同的项目和开发中, 其中许多都是重量级的,比如 Linux、Windows 甚至 Android。

尽管得到了大佬们的广泛接受,但对 Rust 的改变并不容易,因为即使要被接受为 Linux 内核中的第二编程语言,Linus Torvalds 也必须经历很多事情才能尝试。赞同。

就 Google 而言,这也不例外,几个月来,Google 在其许多项目中引入了 Rust,并且 Android 是其中之一,其中已经进行了相当受控的迁移阶段,因为作为加强平台关键软件组件安全性的努力的一部分,现在 谷歌宣布已完成迁移工作 固件的 Rust 的“Android 虚拟化框架受保护的 VM (pVM)”。

这个固件 它用于组织由 Android 的 pVM 管理程序启动的虚拟机的操作。 此前,固件是用 C 语言编写的,并在 U-Boot 引导加载程序之上实现,之前曾在 U-Boot 引导加载程序的代码中发现过由内存问题引起的漏洞。

管理程序 pVM 在启动的早期阶段取得控制权 y 提供虚拟机内存与主机环境的完全隔离, 阻止从主机系统访问处理敏感数据的受保护虚拟机。 pvmfm(受保护的虚拟机固件)固件在启动虚拟机后立即接管控制权,验证生成的环境,并在检测到完整性问题时决定中止启动,或者在信任链存在时为来宾系统生成启动证书。

的重写 Rust 使遵守 Google 的“两人规则”变得更容易、更安全 确保 Android 系统组件的安全。 根据此规则,任何添加的代码必须满足三个条件中的两个以上:使用未经验证的输入数据、使用不安全的编程语言 (C/C++) 以及以提升的权限运行。 此规则意味着用于处理外部数据的代码必须减少到最低权限(隔离)或以安全编程语言编写。 根据 Google 统计,Android 中所有已识别的危险漏洞中大约 70% 是由于内存操作时出现的错误造成的。

在使用 Rust 语言开发控制器等低级组件的过程中出现的困难中,提到了在不安全模式下使用指针的需要,因为 Rust 是在使用语言中分配的内存的情况下创建的。锈。

缺点之中, 还值得强调的是 需要改进访问结构字段和数组索引的语法 通过简单的指针而不创建引用,以及对不安全操作创建安全链接的限制,这些操作可能导致未定义的行为并且编译器无法检查。

值得一提的是,新固件采用 Rust 重写 包含在 Android 14 中 固件开发过程中创建的通用库被打包为包并移植到 Rust 社区。 生成的代码大小与之前版本的 pVM 固件占用 220 kB 相比,新代码占用 460 kB,但是 重写版本中添加了新功能,因此可以摆脱启动过程中使用的一些其他组件。

结果,所有新旧行李箱部件的总尺寸具有可比性。 需要注意的是,当大小比性能更重要时,通过在编译器中启用额外的大小优化模式、丢弃不必要的依赖项以及不使用字符串格式化程序,可以获得与 C 语言相当的结果。

最后 如果您有兴趣了解更多有关它的信息,您可以在中查看详细信息 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。