Bringing Rust to the Pixel Baseband
15 points by vaguelytagged
15 points by vaguelytagged
Nice!
Just last week I was working on cargo-gnaw a little bit...
Could I get an explanation on what it is? I read the page on it but I don’t really understand what it’s doing. Are gn rules just extra lints?
GN is Google's build system. Google use it for everything. It's pretty annoying to deal with for outsiders but I imagine it works for Googlers. They describe the whole world in terms of gn, all of e.g Chromium's vendored dependencies get wrapped into gn build files. It makes sense that they'd want a tool to create GN build files for Rust projects, but it's not gonna be very exciting for people who don't work on Google software.
GN is a build system like CMake or Bazel or Make. It stands for Generate Ninja (I think) because it just generates ninja files and then ninja is responsible for doing the actual build. GN, like ninja comes out of the chromium project but is used by some other projects including Fuchsia, and apparently the Pixel baseband software stack.
cargo-gnaw is a way of generating GN build rules for crates based on their Cargo.toml files, using cargo to do the dependency & version resolution, but not using cargo to invoke rustc.
One of the challenges in using Rust in large complex projects is that cargo can't build non-rust code (well or at all) but important logic about how to build rust is inside cargo.
Bit of a shame that Pixel devices are most likely to be the ones I won't buy because of Google's efforts to make them the first target in their slow march to iOS-ify the platform.
(e.g. They backpedalled to Google to introduce overly onerous hoops to prevent “sideloading” but I'm pretty sure I remember the first talk in the vein of Google to require developer certification to install Android applications, even outside of the Play Store being that they wanted to go in an "If you want a rootable phone, buy something else. There are plenty of options." direction for Pixels.)
On the other hand I really enjoy my Pixel with GrapheneOS (besides the lack of tap to pay and a pretty serious issue with RCS messages not working correctly when actively using a secondary account, requiring to suitch back to the owner account to pull them, apparently an upstream bug).
I got tap-to-pay working with Curve on my pixel 8 with GrapheneOS.
Last time I checked, Curve only serviced European countries and I am currently residing in the US.
Ah, sorry. I didn't know that about Curve.
Not a problem :)
I'm glad that there are alternatives elsewhere.
Besides the rough edges during first set up, once the phone is going it is remarkably smooth (being able to not even install some apps that are normally part of the base system and granular control over notifications makes for a very distraction free experience). Even my banking apps haven't given me any trouble due to attestation, thankfully.
Thank you for reminding me to try Curve (another GrapheneOS user here) does it work reliably for you? On a Dutch forum, some people complained that payments sometimes fail because the bank does not approve the Curve transaction. Have you had any such issues?
(Currently I'm using the Apple Watch that I also still have for contactless payments.)