Everything you need to know about google shoehorned rust into pixel 10.
[ad_1]Rust doesn’t have a slow garbage collector. Instead, it uses a mechanism called the borrow checker that ensures memory safety at compile time. This strict set of rules ensures that you can’t “forget” to free up memory—code simply won’t compile if the memory rules are breached. This is what makes Rust a memory-safe language.
However, not even Google can wave its proverbial hand and change how modem firmware is written—we’re talking about tens of megabytes of executable machine code, which is a lot. Not only would it be a herculean task to update decades of work, but many of the companies involved also consider the inner workings of modems to be trade secrets.
To protect the Pixel modem from zero-day attacks, Google focused on the DNS parser. As cellular features have migrated to data networks, DNS has become a core part of how phones work. Google explains that DNS requires parsing of untrusted data, and that makes it a major security concern, but it’s one you can solve with Rust.
Google chose the hickory-proto open source Rust DNS library, which is not particularly optimized but has broad adoption and support. The modem in Pixel phones is not a memory-constrained environment, which allowed the team to tack on a Rust component to make DNS in the existing code safer. The team stripped out the standard library dependencies, allowing it to compile to machine code for faster operation, which was then grafted onto the existing C/C++ modem code. In total, the Rust components added 371KB, which is workable in the Pixel modem.
Under this system, any attempt to trigger a vulnerability by manipulating memory runs into the Rust wall—it can’t be affected by malicious DNS packets. The Pixel 10 phones are the first to ship with this safer modem implementation. Google hopes this work will allow other platforms to make similar improvements, but the company notes the size of its chosen Rust library could be a problem for simpler embedded systems. It may be possible to address that by making the library more modular in the future. Google also sees this work as a foundation for integrating more memory-safe components into the cellular baseband in time.
[ad_2]
Source link
More on google shoehorned rust into pixel 10
Stay tuned for updates on google shoehorned rust into pixel 10 as the story develops. Related: Mobile & Accessories.
Frequently Asked Questions
Rust uses a mechanism called the borrow checker that ensures memory safety at compile time, without a slow garbage collector. Code simply will not compile if memory rules are breached, so you cannot forget to free up memory.
Google targeted the DNS parser, since DNS requires parsing untrusted data and is a major security concern. It used the open-source hickory-proto Rust DNS library, stripped out standard library dependencies for speed, and grafted it onto the existing C/C++ modem code.
The Rust components added 371KB in total, which is workable in the Pixel modem. Under this system, malicious DNS packets cannot trigger memory vulnerabilities because they run into the Rust wall.
Rewriting modem firmware would mean updating tens of megabytes of machine code built over decades, and many companies treat modem internals as trade secrets. Google hopes other platforms will follow, but notes the chosen library's size could be a problem for simpler embedded systems.



